@@ -27,27 +27,15 @@ def __call__(self, task):
27
27
if task .res .raw .status_code != 200 :
28
28
return
29
29
30
- updateInfo = re .findall (r"<meta property=\"og:description\" content=\"([^\"]*)\"" , task .res .raw .text )
31
- if updateInfo :
32
- rawData = updateInfo [0 ]
33
- else :
34
- rawData = ""
35
-
36
- versionInfo = re .findall ("<meta property=\" og:url\" content=\" .*tag/([^\" ]*)\" " , task .res .raw .text )
37
- if versionInfo :
38
- verData = versionInfo [0 ]
39
- else :
40
- verData = ""
41
-
30
+ verData = task .res .GetText ()
42
31
info = verData .replace ("v" , "" ).split ("." )
43
32
version = int (info [0 ]) * 100 + int (info [1 ]) * 10 + int (info [2 ]) * 1
33
+
44
34
info2 = re .findall (r"\d+\d*" , os .path .basename (config .UpdateVersion ))
45
35
curversion = int (info2 [0 ]) * 100 + int (info2 [1 ]) * 10 + int (info2 [2 ]) * 1
46
36
47
- rawData = "\n \n v" + "." .join (info ) + "\n " + rawData
48
-
49
37
if version > curversion :
50
- data ["data" ] = rawData
38
+ data ["data" ] = verData . replace ( " \r \n " , "" ). replace ( " \n " , "" )
51
39
else :
52
40
data ["data" ] = "no"
53
41
except Exception as es :
@@ -57,38 +45,22 @@ def __call__(self, task):
57
45
TaskBase .taskObj .taskBack .emit (task .bakParam , pickle .dumps (data ))
58
46
59
47
60
- @handler (req .CheckPreUpdateReq )
61
- class CheckPreUpdateReqHandler (object ):
48
+ @handler (req .CheckUpdateInfoReq )
49
+ class CheckUpdateInfoHandler (object ):
62
50
def __call__ (self , task ):
63
51
data = {"st" : task .status , "data" : "" }
64
52
try :
65
53
if not task .res .GetText () or task .status == Status .NetError :
66
54
return
67
55
if task .res .raw .status_code != 200 :
68
56
return
69
- rawData = json .loads (task .res .raw .text )
70
- if not rawData :
71
- return
72
- v = rawData [0 ]
73
- verData = v .get ("tag_name" )
74
- info = verData .replace ("v" , "" ).split ("." )
75
- version = int (info [0 ]) * 100 + int (info [1 ]) * 10 + int (info [2 ]) * 1
76
- info2 = re .findall (r"\d+\d*" , os .path .basename (config .UpdateVersion ))
77
- curversion = int (info2 [0 ]) * 100 + int (info2 [1 ]) * 10 + int (info2 [2 ]) * 1
78
-
79
- rawData = v .get ("body" )
80
-
81
- if version > curversion :
82
- data ["data" ] = rawData
83
- else :
84
- data ["data" ] = "no"
85
57
58
+ data ["data" ] = task .res .GetText ()
86
59
except Exception as es :
87
60
pass
88
61
finally :
89
62
if task .bakParam :
90
63
TaskBase .taskObj .taskBack .emit (task .bakParam , pickle .dumps (data ))
91
-
92
64
# @handler(req.GetUserInfoReq)
93
65
# class GetUserInfoReqHandler(object):
94
66
# def __call__(self, task: Task):
@@ -761,27 +733,40 @@ def __call__(self, backData):
761
733
if backData .bakParam :
762
734
TaskBase .taskObj .downloadBack .emit (backData .bakParam , 0 , - Status .Error , b"" )
763
735
return
736
+
764
737
fileSize = int (r .headers .get ('Content-Length' , 0 ))
765
- if fileSize <= 0 :
766
- fileSize = 100000
767
738
getSize = 0
768
739
data = b""
769
- now = time .time ()
770
740
771
741
addSize = 0
742
+ now = time .time ()
743
+ isAlreadySend = False
772
744
# 网速快,太卡了,优化成最多100ms一次
773
- for chunk in r .iter_content (chunk_size = 4096 ):
774
- cur = time .time ()
775
- tick = cur - now
776
- addSize += len (chunk )
777
- if tick >= 0.1 :
778
- if backData .bakParam and addSize > 0 :
779
- TaskBase .taskObj .downloadBack .emit (backData .bakParam , addSize , max (1 , fileSize - getSize ), b"" )
780
- addSize = 0
781
- now = cur
782
-
783
- getSize += len (chunk )
784
- data += chunk
745
+ try :
746
+ for chunk in r .iter_content (chunk_size = 4096 ):
747
+ cur = time .time ()
748
+ tick = cur - now
749
+ addSize += len (chunk )
750
+ if tick >= 0.1 :
751
+ isAlreadySend = True
752
+ if backData .bakParam and addSize > 0 :
753
+ TaskBase .taskObj .downloadBack .emit (backData .bakParam , addSize ,
754
+ max (1 , fileSize - getSize ), b"" )
755
+ addSize = 0
756
+ now = cur
757
+
758
+ getSize += len (chunk )
759
+ data += chunk
760
+ if not isAlreadySend :
761
+ if backData .bakParam :
762
+ TaskBase .taskObj .downloadBack .emit (backData .bakParam , 0 , getSize , b"" )
763
+
764
+ except Exception as es :
765
+ Log .Error (es )
766
+ if backData .req .resetCnt > 0 :
767
+ backData .req .isReset = True
768
+ Server ().ReDownload (backData )
769
+ return
785
770
786
771
# Log.Info("size:{}, url:{}".format(ToolUtil.GetDownloadSize(fileSize), backData.req.url))
787
772
_ , _ , mat , isAni = ToolUtil .GetPictureSize (data )
@@ -829,15 +814,17 @@ def __call__(self, backData):
829
814
except Exception as es :
830
815
Log .Error (es )
831
816
# 保存失败了
832
- if backData .backParam :
833
- TaskBase .taskObj .downloadBack .emit (backData .backParam , 0 , - 2 , b"" )
817
+ if backData .bakParam :
818
+ TaskBase .taskObj .downloadBack .emit (backData .bakParam , 0 , - 2 , b"" )
834
819
835
820
if backData .bakParam :
836
821
TaskBase .taskObj .downloadBack .emit (backData .bakParam , 0 , 0 , data )
822
+
837
823
except Exception as es :
824
+ backData .status = Status .DownloadFail
838
825
Log .Error (es )
839
- if backData .backParam :
840
- TaskBase .taskObj .downloadBack .emit (backData .backParam , 0 , - 1 , b"" )
826
+ if backData .bakParam :
827
+ TaskBase .taskObj .downloadBack .emit (backData .bakParam , 0 , - backData . status , b"" )
841
828
842
829
843
830
@handler (req .DnsOverHttpsReq )
@@ -884,7 +871,9 @@ def __call__(self, backData):
884
871
r = backData .res
885
872
try :
886
873
if r .status_code != 200 :
874
+ data ["st" ] = Status .Error
887
875
if backData .bakParam :
876
+ data ["st" ] = Status .Error
888
877
TaskBase .taskObj .taskBack .emit (backData .bakParam , pickle .dumps (data ))
889
878
return
890
879
@@ -897,13 +886,14 @@ def __call__(self, backData):
897
886
if consume >= 3.0 :
898
887
break
899
888
consume = time .time () - now
900
- downloadSize = getSize / max ( 0.0001 , consume )
889
+ downloadSize = getSize / consume
901
890
speed = ToolUtil .GetDownloadSize (downloadSize )
902
891
if backData .bakParam :
903
892
data ["data" ] = speed
904
893
TaskBase .taskObj .taskBack .emit (backData .bakParam , pickle .dumps (data ))
905
894
906
895
except Exception as es :
907
896
Log .Error (es )
897
+ data ["st" ] = Status .DownloadFail
908
898
if backData .bakParam :
909
899
TaskBase .taskObj .taskBack .emit (backData .bakParam , pickle .dumps (data ))
0 commit comments