Skip to content

Commit 9263d41

Browse files
committed
refactor: FanboxParser -> FanboxUserParser
1 parent 6fadd1c commit 9263d41

File tree

15 files changed

+60
-142
lines changed

15 files changed

+60
-142
lines changed

.github/workflows/apk.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,5 @@ jobs:
5252
with:
5353
automatic_release_tag: ${{ steps.tag_version.outputs.new_tag }}
5454
repo_token: ${{ secrets.GITHUB_TOKEN }}
55-
prerelease: false
55+
prerelease: true
5656
files: app/build/outputs/apk/debug/app-debug.apk

README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
# pixiv Fanbox viewer
1+
# pixiv FanboxViewer
2+
3+
> The application is under development.
24
35
**__本应用仅可查看您已赞助(订阅)的创作者的内容与各创作者的公开内容!__**\
46
**__This application can only check the contents posted by creators you've donated to and public contents!__**
57

6-
Any question related to this project you can either use issue or join my [telegram group](https://t.me/joinchat/KP2S20Y99ihwPaYeeHabBQ)\
7-
任何关于本工程的问题可以用Issue提交或加入[我的电报群](https://t.me/joinchat/KP2S20Y99ihwPaYeeHabBQ)
8+
### Download
89

10+
[Github Release](https://github.com/709924470/FanboxViewer/releases)
911

1012
---
13+
Any question related to this project you can either use issue or join my [telegram group](https://t.me/joinchat/KP2S20Y99ihwPaYeeHabBQ)\
14+
任何关于本工程的问题可以用Issue提交或加入[我的电报群](https://t.me/joinchat/KP2S20Y99ihwPaYeeHabBQ)
1115

1216
开发者很懒, 不想每次都在手机上打开网页再下载, 所以写了这个软件\
1317
Developer is too lazy to open the web page and download them one by one,\
@@ -17,13 +21,15 @@ So he wrote this application
1721
我可能在完成大多数功能之后再拐回来完善这里\
1822
And he is too lazy to write a readme, too uwu\
1923
Maybe he will complete here after he finished major features.
20-
### MailList:
2124

2225
---
26+
27+
### MailList:
28+
2329
`rec_000@126.com`
2430
[![捐赠](https://img.shields.io/badge/捐赠-支付宝二维码-BLUE.svg)](https://api.qrserver.com/v1/create-qr-code/?size=320x320&data=https://qr.alipay.com/fkx09642afxf1dgxi5kwp19)
2531
[![捐赠](https://img.shields.io/badge/捐赠-微信二维码-DARKGREEN.svg)](https://api.qrserver.com/v1/create-qr-code/?size=320x320&data=wxp://f2f0QA34gBTVa83jgkEgGrGiOuWQOtHMTxku)
2632
[![捐赠](https://img.shields.io/badge/Donate-PayPal-DARKBLUE.svg)](https://paypal.me/7099Kii)
2733
[![捐赠](https://img.shields.io/badge/Donate-Ko--fi-ORANGE.svg)](https://Ko-fi.com/709924470)
2834

29-
`npofsi` [![Blog](https://img.shields.io/badge/Blog-npofsi.pro-ORANGE.svg)](https://blog.npofsi.pro)
35+
`npofsi@outlook.com` [![Blog](https://img.shields.io/badge/Blog-npofsi.pro-ORANGE.svg)](https://blog.npofsi.pro)

app/src/main/java/cn/settile/fanboxviewer/Fragments/Main/AllPostFragment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import cn.settile.fanboxviewer.Network.Bean.CardItem;
2323
import cn.settile.fanboxviewer.Network.Bean.MessageItem;
2424
import cn.settile.fanboxviewer.Adapters.RecyclerView.Main.AllPostsRecyclerViewAdapter;
25-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
25+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser;
2626
import cn.settile.fanboxviewer.R;
2727

2828

@@ -81,8 +81,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
8181
public void refreshPosts(boolean refresh,boolean refreshAll){
8282

8383
Executors.newSingleThreadExecutor().submit(() -> {
84-
List<CardItem> lci = FanboxParser.getAllPosts(refresh, ctx);
85-
List<MessageItem> lmi = FanboxParser.getPlans();
84+
List<CardItem> lci = FanboxUserParser.getAllPosts(refresh, ctx);
85+
List<MessageItem> lmi = FanboxUserParser.getPlans();
8686
getActivity().runOnUiThread(() -> srl.setRefreshing(false));
8787
if (lci != null) {
8888
updateList(lci, lmi, refreshAll);

app/src/main/java/cn/settile/fanboxviewer/Fragments/Main/MainTabFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import androidx.viewpager.widget.ViewPager
99
import cn.settile.fanboxviewer.Adapters.Fragment.MainFragmentAdapter
1010
import cn.settile.fanboxviewer.MainActivity
1111
import cn.settile.fanboxviewer.Network.Common
12-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser
12+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser
1313
import cn.settile.fanboxviewer.Network.URLRequestor
1414
import cn.settile.fanboxviewer.R
1515
import cn.settile.fanboxviewer.Util.Constants
@@ -109,7 +109,7 @@ class MainTabFragment : Fragment(R.layout.fragment_main_tabs) {
109109
val iconUrl = user.getString("iconUrl")
110110
val userName = user.getString("name")
111111
val userId = user.getString("userId")
112-
val unread = FanboxParser.getUnreadMessagesCount()
112+
val unread = FanboxUserParser.getUnreadMessagesCount()
113113
requireActivity().runOnUiThread {
114114
(requireActivity() as MainActivity).viewModel.update_user_info(
115115
userName,

app/src/main/java/cn/settile/fanboxviewer/Fragments/Main/MessageFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import cn.settile.fanboxviewer.Network.Bean.MessageItem;
2222
import cn.settile.fanboxviewer.Adapters.RecyclerView.Main.MessageRecyclerViewAdapter;
23-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
23+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser;
2424
import cn.settile.fanboxviewer.R;
2525

2626
/**
@@ -79,7 +79,7 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat
7979
}
8080
srl.setRefreshing(true);
8181
Executors.newSingleThreadExecutor().submit(() -> {
82-
List<MessageItem> lmi = FanboxParser.getMessages(false);
82+
List<MessageItem> lmi = FanboxUserParser.getMessages(false);
8383
srl.setRefreshing(false);
8484
if (lmi != null) {
8585
update(false);
@@ -97,7 +97,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
9797
});
9898

9999
srl.setOnRefreshListener(() -> Executors.newSingleThreadExecutor().submit(() -> {
100-
List<MessageItem> lmi = FanboxParser.getMessages(true);
100+
List<MessageItem> lmi = FanboxUserParser.getMessages(true);
101101
srl.setRefreshing(false);
102102
if (lmi != null) {
103103
update(true);
@@ -112,7 +112,7 @@ public void update(boolean refreshAll) {
112112
if (v == null || c == null) {
113113
return;
114114
}
115-
Future<List<MessageItem>> flmi = Executors.newSingleThreadExecutor().submit(() -> FanboxParser.getMessages(refreshAll));
115+
Future<List<MessageItem>> flmi = Executors.newSingleThreadExecutor().submit(() -> FanboxUserParser.getMessages(refreshAll));
116116
new Handler().post(() -> {
117117
while(!flmi.isDone()){}
118118
List<MessageItem> lmi = null;

app/src/main/java/cn/settile/fanboxviewer/Fragments/Main/NetworkErrorFragment.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,12 @@
22

33
import android.content.Context;
44
import android.os.Bundle;
5-
import android.os.Handler;
65
import android.view.LayoutInflater;
76
import android.view.View;
87
import android.view.ViewGroup;
98

10-
import androidx.annotation.NonNull;
119
import androidx.fragment.app.Fragment;
12-
import androidx.recyclerview.widget.LinearLayoutManager;
13-
import androidx.recyclerview.widget.RecyclerView;
14-
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
15-
16-
import java.util.ArrayList;
17-
import java.util.List;
18-
import java.util.concurrent.Executors;
19-
import java.util.concurrent.Future;
20-
21-
import cn.settile.fanboxviewer.Adapters.RecyclerView.Main.MessageRecyclerViewAdapter;
22-
import cn.settile.fanboxviewer.Network.Bean.MessageItem;
23-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
10+
2411
import cn.settile.fanboxviewer.R;
2512

2613
public class NetworkErrorFragment extends Fragment {

app/src/main/java/cn/settile/fanboxviewer/Fragments/Main/SubscPostFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import cn.settile.fanboxviewer.Adapters.RecyclerView.Main.SubscribedPostsRecyclerViewAdapter;
1818
import cn.settile.fanboxviewer.Network.Bean.CardItem;
19-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
19+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser;
2020
import cn.settile.fanboxviewer.R;
2121

2222

@@ -76,7 +76,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
7676

7777
public void refreshPosts(boolean refresh, boolean refreshAll) {
7878
Executors.newSingleThreadExecutor().submit(() -> {
79-
List<CardItem> lci = FanboxParser.getSupportingPosts(refresh, c);
79+
List<CardItem> lci = FanboxUserParser.getSupportingPosts(refresh, c);
8080
getActivity().runOnUiThread(() -> srl.setRefreshing(false));
8181
if (lci != null) {
8282
updateList(lci, refreshAll);

app/src/main/java/cn/settile/fanboxviewer/Fragments/UserDetail/PostFragment.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import cn.settile.fanboxviewer.Adapters.RecyclerView.CardRecyclerViewAdapterBase;
2020
import cn.settile.fanboxviewer.Network.Bean.CardItem;
21-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
21+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser;
2222
import cn.settile.fanboxviewer.R;
2323
import lombok.Setter;
2424

@@ -34,7 +34,7 @@ public class PostFragment extends Fragment {
3434
private View v;
3535
private RecyclerView recyclerView;
3636
private SwipeRefreshLayout srl;
37-
37+
List<CardItem> lci;
3838
public PostFragment() {
3939
}
4040

@@ -47,6 +47,11 @@ public static PostFragment newInstance() {
4747
public void onCreate(Bundle savedInstanceState) {
4848
super.onCreate(savedInstanceState);
4949
c = getActivity();
50+
try {
51+
lci = new FanboxUserParser(userID).getUserPosts();
52+
} catch (Exception e) {
53+
e.printStackTrace();
54+
}
5055
}
5156

5257
@Override
@@ -70,18 +75,18 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
7075
return;
7176
}
7277
srl.setRefreshing(true);
73-
refreshPosts(false,false);
78+
refreshPosts(false, false);
7479
});
75-
srl.setOnRefreshListener(() -> refreshPosts(false,true));
80+
srl.setOnRefreshListener(() -> refreshPosts(false, true));
7681
srl.setRefreshing(true);
77-
refreshPosts(true,true);
82+
refreshPosts(true, true);
7883

7984
return inflate;
8085
}
8186

8287
public void refreshPosts(boolean refresh, boolean refreshAll) {
8388
Executors.newSingleThreadExecutor().submit(() -> {
84-
List<CardItem> lci = new FanboxParser(userID).getUserPosts();
89+
8590
getActivity().runOnUiThread(() -> srl.setRefreshing(false));
8691
if (lci != null) {
8792
updateList(lci, refreshAll);

app/src/main/java/cn/settile/fanboxviewer/Network/Common.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import java.util.concurrent.TimeUnit;
1616

1717
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxAPI;
18-
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxParser;
18+
import cn.settile.fanboxviewer.Network.RESTfulClient.FanboxUserParser;
1919
import okhttp3.Cache;
2020
import okhttp3.OkHttpClient;
2121
import okhttp3.Request;
@@ -78,7 +78,7 @@ public static OkHttpClient initClient() {
7878
.build();
7979

8080
FanboxAPI api = fanbox.create(FanboxAPI.class);
81-
FanboxParser.client = api;
81+
FanboxUserParser.client = api;
8282
return client;
8383
}
8484

app/src/main/java/cn/settile/fanboxviewer/Network/FanboxParser.kt

Lines changed: 1 addition & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import kotlin.collections.HashMap
2323
@Deprecated("")
2424
@Slf4j
2525
object FanboxParser {
26-
private const val TAG = "FanboxParser"
26+
private const val TAG = "FanboxUserParser"
2727
public var userToName = HashMap<String, String?>()
2828
var postToCover = HashMap<String, String?>()
2929
var lastMessageList: List<MessageItem> = ArrayList()
@@ -249,90 +249,6 @@ object FanboxParser {
249249
}
250250
}
251251

252-
@SuppressLint("SimpleDateFormat")
253-
fun getUserPosts(userId: String, useUrl: String?, c: Context): HashMap<Int, Any>? {
254-
return try {
255-
// android.util.Log.d("getPosts", (refresh ? "t" : "f") + (all ? "t" : "f"));
256-
val lci: MutableList<CardItem> = ArrayList()
257-
val posts: JSONArray
258-
var tmp: JSONObject?
259-
val nextUrl: String
260-
if (useUrl == null) {
261-
tmp = getJSON(getUrl(userId))
262-
tmp = tmp!!.getJSONObject("body")
263-
// tmp = tmp.getJSONObject("post");
264-
posts = tmp.getJSONArray("items")
265-
nextUrl = tmp.getString("nextUrl")
266-
} else {
267-
val refer = "https://www.pixiv.net/fanbox/creator/$userId/post"
268-
tmp = getJSON(useUrl, refer)
269-
tmp = tmp!!.getJSONObject("body")
270-
posts = tmp.getJSONArray("items")
271-
nextUrl = tmp.getString("nextUrl")
272-
}
273-
for (i in 0 until posts.length()) {
274-
val json = posts.getJSONObject(i)
275-
// android.util.Log.d("getPosts", i + " -> " + json.toString());
276-
val title = json.getString("title")
277-
val desc = json.getString("excerpt")
278-
val fee = json.getInt("feeRequired")
279-
val plan = if (fee == 0) c.getString(R.string.plan_public) else " ¥$fee "
280-
val user = json.getJSONObject("user")
281-
val userName = user.getString("name")
282-
val pixivId = user.getString("userId")
283-
var iconUrl = user.getString("iconUrl")
284-
if (userToIcon[userId] == null) {
285-
userToIcon[userId] = iconUrl
286-
} else {
287-
iconUrl = userToIcon[userId]
288-
}
289-
if (userToName[userId] == null) {
290-
userToName[userId] = userName
291-
}
292-
var date = json.getString("updatedDatetime")
293-
val df: DateFormat = SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ")
294-
val sdf = SimpleDateFormat(c.getString(R.string.date_formatting))
295-
date = sdf.format(df.parse(date))
296-
var headerUrl = json.getString("coverImageUrl")
297-
if (headerUrl == null || headerUrl == "null") {
298-
val body = json.optJSONObject("body")
299-
if (body != null) {
300-
val image = body.optJSONArray("images")
301-
if (image != null) {
302-
headerUrl = image.getJSONObject(0).getString("thumbnailUrl")
303-
}
304-
}
305-
}
306-
val url = "https://fanbox.pixiv.net/api/post.info?postId=" + json.getString("id")
307-
if (!postToCover.containsKey(json.getString("id"))) {
308-
postToCover[json.getString("id")] =
309-
headerUrl
310-
}
311-
lci.add(
312-
CardItem(
313-
iconUrl,
314-
headerUrl,
315-
url,
316-
title,
317-
desc,
318-
userName,
319-
date,
320-
plan,
321-
userId,
322-
pixivId
323-
)
324-
)
325-
}
326-
val result = HashMap<Int, Any>()
327-
result[0] = nextUrl
328-
result[1] = lci
329-
return result
330-
} catch (ex: Exception) {
331-
Log.e(TAG, "EXCEPTION: " + ex)
332-
return null
333-
}
334-
}
335-
336252
@Throws(Exception::class)
337253
fun getPostDetail(url: String?, c: Context): List<DetailItem> {
338254
val items: MutableList<DetailItem> = ArrayList()

0 commit comments

Comments
 (0)