@@ -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}
0 commit comments