Skip to content

Commit 1d10de2

Browse files
committed
v1.1
1 parent dd1c3d2 commit 1d10de2

File tree

3 files changed

+99
-14
lines changed

3 files changed

+99
-14
lines changed

AdnmbBackup-gui/Form1.Designer.cs

Lines changed: 9 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

AdnmbBackup-gui/Form1.cs

Lines changed: 89 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private void button1_Click(object sender, EventArgs e)
6363
var fpjson = JsonConvert.DeserializeObject<JObject>(str);
6464
var replyCount = int.Parse(fpjson["replyCount"].ToString());
6565
int pageCount = replyCount / 19;
66-
if (replyCount / pageCount != 0) pageCount++;
66+
if (replyCount % pageCount != 0) pageCount++;
6767
JArray contentJA = fpjson["replys"].ToObject<JArray>();
6868
for (var page = 2; page <= pageCount; page++)
6969
{
@@ -91,6 +91,7 @@ private void button1_Click(object sender, EventArgs e)
9191
index--;
9292
}
9393
}
94+
label4.Text = "完成";
9495
fpjson["replys"].Replace(contentJA);
9596
var fjsonstr = JsonConvert.SerializeObject(fpjson, Formatting.Indented);
9697
File.WriteAllText(path, fjsonstr);
@@ -122,17 +123,17 @@ static void ConvertToText(string path)
122123
var ja = jo["replys"].ToObject<JArray>();
123124
for (int i = 0; i < ja.Count; i++)
124125
{
125-
sb.Append("------------------------------"); sb.Append(Environment.NewLine);
126+
sb.Append("----------------------------------------"); sb.Append(Environment.NewLine);
126127
sb.Append(ja[i]["userid"].ToString()); sb.Append(" "); sb.Append(ja[i]["now"].ToString());
127128
sb.Append(" No."); sb.Append(ja[i]["id"].ToString()); sb.Append(Environment.NewLine);
128129
sb.Append(ContentProcess(ja[i]["content"].ToString())); sb.Append(Environment.NewLine);
129130
}
130131
File.WriteAllText(path.Replace("json", "txt"), sb.ToString());
131132
var lines = File.ReadAllLines(path.Replace("json", "txt"));
132-
for (var i = 0; i < lines.Length; i++)
133-
{
134-
lines[i] = lines[i].Trim();
135-
}
133+
//for (var i = 0; i < lines.Length; i++)
134+
//{
135+
// lines[i] = lines[i].Trim();
136+
//}
136137
File.WriteAllLines(path.Replace("json", "txt"), lines);
137138
}
138139
static string ContentProcess(string content)
@@ -156,5 +157,87 @@ static string ReadGzip(byte[] bytes)
156157
}
157158
return result;
158159
}
160+
161+
private void Form1_Shown(object sender, EventArgs e)
162+
{
163+
if (File.Exists("AtuobBackupList.txt"))
164+
{
165+
if (!File.Exists("cookie.txt"))
166+
{
167+
MessageBox.Show("请先放好小饼干");
168+
return;
169+
}
170+
int errCount = 0;
171+
if (!Directory.Exists(DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString()))
172+
Directory.CreateDirectory(DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString());
173+
var cookie = File.ReadAllText("cookie.txt");
174+
var ids = File.ReadAllLines("AtuobBackupList.txt");
175+
foreach (var id in ids)
176+
{
177+
try
178+
{
179+
string path = Path.Combine(DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString(), id + ".json");
180+
if (File.Exists(path)) continue;
181+
string url = "https://nmb.fastmirror.org/Api/thread";
182+
CookieContainer cookieContainer = new CookieContainer();
183+
cookieContainer.Add(new Cookie("userhash", cookie, "/", "nmb.fastmirror.org"));
184+
HttpClientHandler handler = new HttpClientHandler() { UseCookies = true };
185+
handler.CookieContainer = cookieContainer;
186+
HttpClient http = new HttpClient(handler);
187+
http.DefaultRequestHeaders.Add("Host", "nmb.fastmirror.org");
188+
http.DefaultRequestHeaders.Add("Accept", "application/json");
189+
http.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36 HavfunClient-AdnmbBackup");
190+
label4.Text = ">>" + id + " 正在获取第1页";
191+
var t = http.GetAsync(url + "?id=" + id + "&page=1");
192+
t.Wait();
193+
var result = t.Result;
194+
var t2 = result.Content.ReadAsByteArrayAsync();
195+
t2.Wait();
196+
var bytes = t2.Result;
197+
var str = ReadGzip(bytes);
198+
var fpjson = JsonConvert.DeserializeObject<JObject>(str);
199+
var replyCount = int.Parse(fpjson["replyCount"].ToString());
200+
int pageCount = replyCount / 19;
201+
if (replyCount % pageCount != 0) pageCount++;
202+
JArray contentJA = fpjson["replys"].ToObject<JArray>();
203+
for (var page = 2; page <= pageCount; page++)
204+
{
205+
label4.Text = ">>" + id + " 正在获取第" + page + "页";
206+
t = http.GetAsync(url + "?id=" + id + "&page=" + page);
207+
t.Wait();
208+
result = t.Result;
209+
t2 = result.Content.ReadAsByteArrayAsync();
210+
t2.Wait();
211+
bytes = t2.Result;
212+
str = ReadGzip(bytes);
213+
var jo = JsonConvert.DeserializeObject<JObject>(str);
214+
JArray ja = jo["replys"].ToObject<JArray>();
215+
var rpcount = ja.Count;
216+
for (int j = 0; j < rpcount; j++)
217+
{
218+
contentJA.Add(ja[j]);
219+
}
220+
}
221+
for (var index = 0; index < contentJA.Count; index++)
222+
{
223+
if (contentJA[index]["title"].ToString() == "广告")
224+
{
225+
contentJA.RemoveAt(index);
226+
index--;
227+
}
228+
}
229+
fpjson["replys"].Replace(contentJA);
230+
var fjsonstr = JsonConvert.SerializeObject(fpjson, Formatting.Indented);
231+
File.WriteAllText(path, fjsonstr);
232+
ConvertToText(path);
233+
}
234+
catch
235+
{
236+
errCount++;
237+
}
238+
}
239+
label4.Text = "已完成自动备份,有" + errCount + "个串的备份存在错误";
240+
}
241+
}
159242
}
160243
}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# AdnmbBackup-gui
22
一个让你本地备份A岛串的小程序
33
[饼干获取教程](https://www.coldthunder11.com/artical/%e6%95%99%e7%a8%8b/%e5%a6%82%e4%bd%95%e8%8e%b7%e5%8f%96a%e5%b2%9b%e7%9a%84%e9%a5%bc%e5%b9%b2/)
4+
支持批量自动备份,在程序目录下新建AtuobBackupList.txt将需要自动备份的串号填入(一行一个),每天第一次打开会自动备份
45
需要.net framework4.8

0 commit comments

Comments
 (0)