import re
import tornado.gen
import urllib.parse
+import yabencode
from . import database
-from . import tracker
from .misc import Object
TRACKERS = (
torrent_hash, file.id)
def torrent_read_hash(self, filename):
- f = None
- try:
- f = open(filename, "rb")
-
- metainfo = tracker.bdecode(f.read())
- metainfo = tracker.bencode(metainfo["info"])
-
- hash = hashlib.sha1()
- hash.update(metainfo)
+ with open(filename, "rb") as f:
+ metainfo = yabencode.decode(f)
+ metainfo = yabencode.encode(metainfo["info"])
- return hash.hexdigest()
+ h = hashlib.new("sha1")
+ h.update(metainfo)
- finally:
- if f:
- f.close()
+ return h.hexdigest()
def supports_arch(self, arch):
return arch in ("x86_64", "i586")