@@ -81,13 +81,17 @@ private void Button_calc_Click(object sender, RoutedEventArgs e)
8181 }
8282 string stmp ;
8383 stmp = jo [ "data" ] [ "stat" ] [ "danmaku" ] . ToString ( ) ;
84- int d = int . Parse ( stmp ) ;
84+ int danmaku = int . Parse ( stmp ) ;
8585 stmp = jo [ "data" ] [ "stat" ] [ "view" ] . ToString ( ) ;
86- int v = int . Parse ( stmp ) ;
86+ int view = int . Parse ( stmp ) ;
8787 stmp = jo [ "data" ] [ "stat" ] [ "reply" ] . ToString ( ) ;
88- int r = int . Parse ( stmp ) ;
88+ int reply = int . Parse ( stmp ) ;
8989 stmp = jo [ "data" ] [ "stat" ] [ "favorite" ] . ToString ( ) ;
90- int f = int . Parse ( stmp ) ;
90+ int favorite = int . Parse ( stmp ) ;
91+ stmp = jo [ "data" ] [ "stat" ] [ "like" ] . ToString ( ) ;
92+ int like = int . Parse ( stmp ) ;
93+ stmp = jo [ "data" ] [ "stat" ] [ "coin" ] . ToString ( ) ;
94+ int coin = int . Parse ( stmp ) ;
9195 long UnixTime = long . Parse ( jo [ "data" ] [ "pubdate" ] . ToString ( ) ) ;
9296 string up = jo [ "data" ] [ "owner" ] [ "name" ] . ToString ( ) ;
9397 string title = jo [ "data" ] [ "title" ] . ToString ( ) ;
@@ -115,8 +119,8 @@ private void Button_calc_Click(object sender, RoutedEventArgs e)
115119 DateTimeOffset TargetTimeUTC = TimeZoneInfo . ConvertTimeToUtc (
116120 TargetTime , cstZone ) ;
117121 long TargetUnixTime = TargetTimeUTC . ToUnixTimeSeconds ( ) ;
118- long StartUnixTime = TargetUnixTime - 3600 * 2 ;
119- long EndUnixTime = TargetUnixTime + 3600 * 2 ;
122+ long StartUnixTime = TargetUnixTime - 3600 * 6 ;
123+ long EndUnixTime = TargetUnixTime + 3600 * 6 ;
120124 wb = String . Concat ( "http://api.bunnyxt.com/tdd/v2/video/" ,
121125 aid , "/record?start_ts=" , StartUnixTime , "&end_ts=" , EndUnixTime ) ;
122126 try
@@ -182,31 +186,52 @@ private void Button_calc_Click(object sender, RoutedEventArgs e)
182186 }
183187 }
184188 stmp = JArr [ TargetPos ] [ "danmaku" ] . ToString ( ) ;
185- int lasd = int . Parse ( stmp ) ;
189+ int lastDanmaku = int . Parse ( stmp ) ;
186190 stmp = JArr [ TargetPos ] [ "view" ] . ToString ( ) ;
187- int lasv = int . Parse ( stmp ) ;
191+ int lastView = int . Parse ( stmp ) ;
188192 stmp = JArr [ TargetPos ] [ "reply" ] . ToString ( ) ;
189- int lasr = int . Parse ( stmp ) ;
193+ int lastReply = int . Parse ( stmp ) ;
190194 stmp = JArr [ TargetPos ] [ "favorite" ] . ToString ( ) ;
191- int lasf = int . Parse ( stmp ) ;
195+ int lastFavorite = int . Parse ( stmp ) ;
196+ stmp = JArr [ TargetPos ] [ "like" ] . ToString ( ) ;
197+ int lastLike = int . Parse ( stmp ) ;
198+ stmp = JArr [ TargetPos ] [ "coin" ] . ToString ( ) ;
199+ int lastCoin = int . Parse ( stmp ) ;
192200 stmp = JArr [ TargetPos ] [ "added" ] . ToString ( ) ;
193201 long RealRecordUnixTime = long . Parse ( stmp ) ;
194202 var RecordTime = DateTimeOffset . FromUnixTimeSeconds ( RealRecordUnixTime ) ;
195203 var RecordTimeUTC = RecordTime . UtcDateTime ;
196204 var RecordTimeCST = TimeZoneInfo . ConvertTimeFromUtc (
197205 RecordTimeUTC , cstZone ) ;
198206 datat = String . Format ( "{0}" , RecordTimeCST ) ;
199- v -= lasv ; r -= lasr ; d -= lasd ; f -= lasf ;
207+ view -= lastView ; reply -= lastReply ;
208+ danmaku -= lastDanmaku ; favorite -= lastFavorite ;
209+ like -= lastLike ; coin -= lastCoin ;
200210 }
201211 }
202212
203- double bf = 0 , xza = 0 , xzb = 0 ; int tot = 0 ;
204- if ( v > 10000 ) bf = v * 0.5 + 5000 ; else bf = v ;
205- xza = Math . Round ( ( bf + f ) * 1.0 / ( bf + f + d * 10 + r * 20 ) , 2 ) ;
206- xzb = Math . Round ( f * 1.0 / v * 250 , 2 ) ;
213+ double bf = 0 , dz = 0 , xza = 0 , xzb = 0 , xzc = 0 ;
214+ int tot = 0 ;
215+ if ( view > 10000 ) bf = view * 0.5 + 5000 ; else bf = view ;
216+ if ( like > 2000 ) dz = like * 2 + 4000 ; else dz = like * 4 ;
217+ xza = ( bf + favorite ) * 1.0 / ( bf + favorite + danmaku * 10 + reply * 20 ) ;
218+ xzb = favorite * 1.0 / view * 250 ;
219+ xzc = coin * 1.0 / view * 150 ;
207220 if ( xzb > 50 ) xzb = 50 ;
208221 if ( xzb < 10 ) bf = bf * xzb * 0.1 ;
209- tot = ( int ) Math . Round ( bf + ( r * 25 + d ) * xza + f * xzb ) ;
222+ if ( xzc > 20 ) xzc = 20 ;
223+ if ( xzc < 5 ) dz = dz * xzc * 0.2 ;
224+ tot = ( int ) Math . Round ( bf + ( reply * 25 + danmaku ) * xza + dz + favorite * xzb + coin * xzc ) ;
225+
226+ string outputText = NowTimeCST + "\r \n " ;
227+ outputText = "当前时间:" + outputText ;
228+ if ( GetLastWeek )
229+ {
230+ outputText += "上周数据采集时间:" ;
231+ outputText += datat . ToString ( ) ;
232+ outputText += "\r \n " ;
233+ }
234+ outputText += String . Format ( "av号:{0}\r \n bv号:{1}\r \n 稿件标题:{2}\r \n UP主:{3}\r \n 投稿时间:{4}\r \n \r \n 播放数:{5}\r \n 弹幕数:{6}\r \n 评论数:{7}\r \n 收藏数:{8}\r \n 点赞数:{9}\r \n 硬币数:{10}\r \n \r \n 修正A:{11:0.00}\r \n 修正B:{12:0.00}\r \n 修正C:{13:0.00}\r \n 总分:{14}" , aid , bvid , title , up , pubt , view , danmaku , reply , favorite , like , coin , xza , xzb , xzc , tot ) ;
210235
211236 MessageBoxResult sav = MessageBox . Show ( "是否需要保存数据?" , "保存数据" , MessageBoxButton . YesNo , MessageBoxImage . Question ) ;
212237 if ( sav == MessageBoxResult . Yes )
@@ -268,31 +293,15 @@ private void Button_calc_Click(object sender, RoutedEventArgs e)
268293 if ( notfind_file ) goto here ;
269294 FileStream fs = new FileStream ( path , FileMode . Create , FileAccess . ReadWrite ) ;
270295 StreamWriter sw = new StreamWriter ( fs ) ;
271- sw . Write ( "当前时间:" ) ;
272- sw . WriteLine ( NowTimeCST ) ;
273- if ( GetLastWeek )
274- {
275- sw . Write ( "上周数据采集时间:" ) ;
276- sw . WriteLine ( datat ) ;
277- }
278- sw . WriteLine ( "av号:{0}\r \n bv号:{1}\r \n 稿件标题:{2}\r \n UP主:{3}\r \n 投稿时间:{4}\r \n \r \n 播放数:{5}\r \n 弹幕数:{6}\r \n 评论数:{7}\r \n 收藏数:{8}\r \n \r \n 修正A:{9:0.00}\r \n 修正B:{10:0.00}\r \n 总分:{11}" , aid , bvid , title , up , pubt , v , d , r , f , xza , xzb , tot ) ;
296+ sw . WriteLine ( outputText ) ;
279297 sw . Close ( ) ;
280298 Process . Start ( "notepad.exe" , path ) ;
281299 string opt = "数据已保存在" + path + "!" ;
282300 MessageBox . Show ( opt , "保存成功!" , MessageBoxButton . OK , MessageBoxImage . Information ) ;
283301 }
284302 else
285303 {
286- string opt = NowTimeCST + "\r \n " ;
287- opt = "当前时间:" + opt ;
288- if ( GetLastWeek )
289- {
290- opt += "上周数据采集时间:" ;
291- opt += datat . ToString ( ) ;
292- opt += "\r \n " ;
293- }
294- opt += "av号:" + aid + "\r \n bv号:" + bvid + "\r \n 稿件标题:" + title + "\r \n UP主:" + up + "\r \n 投稿时间:" + pubt + "\r \n \r \n 播放数:" + v . ToString ( ) + "\r \n 弹幕数:" + d . ToString ( ) + "\r \n 评论数:" + r . ToString ( ) + "\r \n 收藏数:" + f . ToString ( ) + "\r \n \r \n 修正A:" + xza . ToString ( ) + "\r \n 修正B:" + xzb . ToString ( ) + "\r \n 总分:" + tot . ToString ( ) ;
295- MessageBox . Show ( opt , "当前数据" , MessageBoxButton . OK ) ;
304+ MessageBox . Show ( outputText , "当前数据" , MessageBoxButton . OK ) ;
296305 }
297306
298307 }
0 commit comments