(empty log message)
@@ -87,7 +87,7 @@ | ||
87 | 87 | |
88 | 88 | } |
89 | 89 | |
90 | - public int getID(){ | |
90 | + public int getId(){ | |
91 | 91 | return this.id; |
92 | 92 | } |
93 | 93 |
@@ -157,30 +157,28 @@ | ||
157 | 157 | |
158 | 158 | //---------------------------------------------------------------------------- |
159 | 159 | public User getAuthor(){ |
160 | - return this.getAuthor(50); | |
160 | + return this.api.findUser(this.getAuthorId(), this.getAuthorName()); | |
161 | 161 | } |
162 | 162 | |
163 | - public User getAuthor(final int depth){ | |
163 | + //---------------------------------------------------------------------------- | |
164 | + @Override | |
165 | + public String toString(){ | |
164 | 166 | |
165 | - try { | |
167 | + final StringBuilder ret = new StringBuilder(); | |
168 | + ret.append(this.getClass().getName()); | |
169 | + ret.append("[id: "); | |
170 | + ret.append(this.getId()); | |
171 | + ret.append(", title: "); | |
172 | + ret.append(this.getTitle()); | |
173 | + ret.append(", author name: "); | |
174 | + ret.append(this.getAuthorName()); | |
175 | + ret.append(", data: "); | |
176 | + ret.append(this.getDate()); | |
177 | + ret.append("]"); | |
166 | 178 | |
167 | - for(final User u : this.api.findUsers(this.getAuthorName(), depth)){ | |
179 | + return ret.toString(); | |
168 | 180 | |
169 | - if(u.getId() == this.getAuthorId()){ | |
181 | + } | |
170 | 182 | |
171 | - return u; | |
172 | 183 | |
173 | - } | |
174 | - | |
175 | - } | |
176 | - | |
177 | - } catch (IOException e) { | |
178 | - // TODO 自動生成された catch ブロック | |
179 | - e.printStackTrace(); | |
180 | - } | |
181 | - | |
182 | - return null; | |
183 | - | |
184 | - } | |
185 | - | |
186 | 184 | } |
@@ -64,6 +64,11 @@ | ||
64 | 64 | //============================================================================ |
65 | 65 | // Constructors |
66 | 66 | //============================================================================ |
67 | + /** | |
68 | + * PixivAPI インスタンスを作成する. | |
69 | + * | |
70 | + * @throws IOException I/O エラーが発生した場合. | |
71 | + */ | |
67 | 72 | public PixivAPI() throws IOException{ |
68 | 73 | |
69 | 74 | this.base = new URL(BaseURL); |
@@ -240,6 +245,73 @@ | ||
240 | 245 | return this.getUsers(SearchUser, String.format("nick=%s", URLEncoder.encode(name , UTF8)), size); |
241 | 246 | } |
242 | 247 | |
248 | + public User findUser(final int id, final String name){ | |
249 | + | |
250 | + final List<User> ret = new ArrayList<User>(); | |
251 | + try{ | |
252 | + | |
253 | + for(int i = 0; ret.size() == 0 && i < 100; ++i){ | |
254 | + | |
255 | + final URL url = new URL(this.base, String.format("%s.php?nick=%s&%s=%s&p=%d", SearchUser, URLEncoder.encode(name, UTF8), SessionID, this.session, i)); | |
256 | + final HttpURLConnection con = (HttpURLConnection) url.openConnection(); | |
257 | + con.connect(); | |
258 | + | |
259 | + if(con.getResponseCode() == 200){ | |
260 | + | |
261 | + final Reader in = new InputStreamReader(con.getInputStream()); | |
262 | + CSVParser.parse(in, new Handler(){ | |
263 | + | |
264 | + @Override | |
265 | + public void update(final String[] data) { | |
266 | + | |
267 | + try { | |
268 | + | |
269 | + final User u = new User(PixivAPI.this, data); | |
270 | + if(u.getId() == id){ | |
271 | + | |
272 | + ret.add(u); | |
273 | + | |
274 | + } | |
275 | + | |
276 | + } catch (IOException e) { | |
277 | + | |
278 | + // TODO 自動生成された catch ブロック | |
279 | + e.printStackTrace(); | |
280 | + | |
281 | + } | |
282 | + | |
283 | + } | |
284 | + | |
285 | + }); | |
286 | + in.close(); | |
287 | + | |
288 | + }else{ | |
289 | + | |
290 | + break; | |
291 | + | |
292 | + } | |
293 | + | |
294 | + } | |
295 | + | |
296 | + }catch(final IOException e){ | |
297 | + | |
298 | + // TODO 自動生成された catch ブロック | |
299 | + e.printStackTrace(); | |
300 | + | |
301 | + } | |
302 | + | |
303 | + if(ret.size() != 0){ | |
304 | + | |
305 | + return ret.get(0); | |
306 | + | |
307 | + }else{ | |
308 | + | |
309 | + return null; | |
310 | + | |
311 | + } | |
312 | + | |
313 | + } | |
314 | + | |
243 | 315 | //---------------------------------------------------------------------------- |
244 | 316 | // APIs for user |
245 | 317 | //---------------------------------------------------------------------------- |
@@ -518,7 +590,6 @@ | ||
518 | 590 | |
519 | 591 | } |
520 | 592 | |
521 | - | |
522 | 593 | } |
523 | 594 | |
524 | 595 | } |
@@ -103,6 +103,12 @@ | ||
103 | 103 | return this.api.getImageSize(this); |
104 | 104 | } |
105 | 105 | |
106 | + /** | |
107 | + * このユーザの投稿画像を指定した数だけ取得する. | |
108 | + * | |
109 | + * @param size 取得する画像数 | |
110 | + * @return 取得した画像のリスト | |
111 | + */ | |
106 | 112 | public List<Image> getImages(final int size){ |
107 | 113 | return this.api.getImages(this, size); |
108 | 114 | } |
@@ -0,0 +1,21 @@ | ||
1 | +pxv: A pixiv API wrapper for Java (version 0.1) | |
2 | +================================= | |
3 | + | |
4 | +概要 | |
5 | +--------------------------------- | |
6 | +イラストコミュニケーションサービス pixiv の API を Java から利用するためのライブラリです. | |
7 | +リファレンスは添付の Javadoc をご覧下さい. | |
8 | +またリファレンスのオンライン版は http://pxv.sourceforge.jp/javadoc/ から閲覧することができます. | |
9 | + | |
10 | + | |
11 | +ライセンス | |
12 | +--------------------------------------- | |
13 | +本ソフトウェアは、GNU Lesser General Public License (GNU LGPL) バージョン 3 のもとで配布されています. | |
14 | + | |
15 | +このプログラムはフリーソフトウェアです. | |
16 | +あなたはこれを,フリーソフトウェア財団によって発行された GNU Lesser General Public License | |
17 | +(バージョン3か、それ以降のバージョンのうちどれか) が定める条件の下で再頒布または改変することができます. | |
18 | + | |
19 | +このプログラムは有用であることを願って頒布されますが,全くの無保証です. | |
20 | +商業可能性の保証や特定目的への適合性は,言外に示されたものも含め,全く存在しません. | |
21 | +詳しくは GNU Lesser General Public License をご覧ください. | |
\ No newline at end of file |