@@ -847,54 +847,70 @@ def __check_remove_rule(remove_rule,
847847
848848 @staticmethod
849849 def __get_torrent_dict (downloader_type , torrent ):
850- # 当前时间
851- date_now = int (time .mktime (datetime .now ().timetuple ()))
850+
851+ # 当前时间戳
852+ date_now = int (time .time ())
852853
853854 if downloader_type == "qbittorrent" :
854855 # ID
855856 torrent_id = torrent .get ("hash" )
856- # 已开始时间 秒
857- dltime = int (time .time () - torrent .get ("added_on" ))
858- # 已做种时间 秒
859- date_done = torrent .completion_on if torrent .completion_on > 0 else torrent .added_on
860- seeding_time = date_now - date_done if date_done else 0
857+ # 下载时间
858+ dltime = date_now - torrent .get ("added_on" ) if torrent .get ("added_on" ) else 0
859+ # 做种时间
860+ seeding_time = date_now - torrent .get ("completion_on" ) if torrent .get ("completion_on" ) else 0
861861 # 分享率
862862 ratio = torrent .get ("ratio" ) or 0
863863 # 上传量
864864 uploaded = torrent .get ("uploaded" ) or 0
865865 # 平均上传速度 Byte/s
866- avg_upspeed = int (uploaded / dltime )
866+ if dltime :
867+ avg_upspeed = int (uploaded / dltime )
868+ else :
869+ avg_upspeed = uploaded
867870 # 已未活动 秒
868- last_activity = int (torrent .get ("last_activity" , 0 ))
869- iatime = date_now - last_activity if last_activity else 0
871+ iatime = date_now - torrent .get ("last_activity" ) if torrent .get ("last_activity" ) else 0
870872 # 下载量
871873 downloaded = torrent .get ("downloaded" )
872874 # 种子大小
873875 total_size = torrent .get ("total_size" )
874876 # 添加时间
875- add_time = time .strftime ('%Y-%m-%d %H:%M:%S' , time .localtime (torrent .get ("added_on" )))
877+ add_time = time .strftime ('%Y-%m-%d %H:%M:%S' , time .localtime (torrent .get ("added_on" ) or 0 ))
878+
876879 else :
880+
877881 # ID
878882 torrent_id = torrent .hashString
879883 # 做种时间
880- date_done = torrent .date_done or torrent .date_added
884+ if not torrent .date_done or torrent .date_done .timestamp () < 1 :
885+ seeding_time = 0
886+ else :
887+ seeding_time = date_now - int (torrent .date_done .timestamp ())
881888 # 下载耗时
882- dltime = date_now - int (time .mktime (torrent .date_added .timetuple ()))
883- seeding_time = date_now - int (time .mktime (date_done .timetuple ()))
889+ if not torrent .date_added or torrent .date_added .timestamp () < 1 :
890+ dltime = 0
891+ else :
892+ dltime = date_now - int (torrent .date_added .timestamp ())
884893 # 下载量
885894 downloaded = int (torrent .total_size * torrent .progress / 100 )
886895 # 分享率
887896 ratio = torrent .ratio or 0
888897 # 上传量
889898 uploaded = int (downloaded * torrent .ratio )
890899 # 平均上传速度
891- avg_upspeed = int (uploaded / dltime )
900+ if dltime :
901+ avg_upspeed = int (uploaded / dltime )
902+ else :
903+ avg_upspeed = uploaded
892904 # 未活动时间
893- iatime = date_now - int (time .mktime (torrent .date_active .timetuple ()))
905+ if not torrent .date_active or torrent .date_active .timestamp () < 1 :
906+ iatime = 0
907+ else :
908+ iatime = date_now - int (torrent .date_active .timestamp ())
894909 # 种子大小
895910 total_size = torrent .total_size
896911 # 添加时间
897- add_time = time .strftime ('%Y-%m-%d %H:%M:%S' , time .localtime (torrent .date_added ))
912+ add_time = time .strftime ('%Y-%m-%d %H:%M:%S' ,
913+ time .localtime (torrent .date_added .timestamp () if torrent .date_added else 0 ))
898914
899915 return {
900916 "id" : torrent_id ,
0 commit comments