"alix" : 41,
"usbfdd" : 31,
"usbhdd" : 30,
+ "arm" : 40,
"xen" : 50,
}
def filename(self):
return self.__data.get("filename")
+ @property
+ def basename(self):
+ return os.path.basename(self.filename)
+
+ @property
+ def size(self):
+ return self.__data.get("filesize")
+
+ @property
+ def arch(self):
+ known_arches = ("i586", "arm")
+
+ for arch in known_arches:
+ if arch in self.basename:
+ return arch
+
+ return "N/A"
+
class Release(object):
@property
def files(self):
if not self.__files:
files = self.db.query("SELECT id FROM files WHERE releases = %s \
- AND loadable = 'Y'", self.id)
+ AND loadable = 'Y' AND NOT filetype = 'torrent'", self.id)
self.__files = [File(self, f.id) for f in files]
self.__files.sort(lambda a, b: cmp(a.prio, b.prio))
sha1 = hashlib.sha1()
with open(filename) as f:
- sha1.update(f.read())
+ buf_size = 1024
+ buf = f.read(buf_size)
+ while buf:
+ sha1.update(buf)
+ buf = f.read(buf_size)
return sha1.hexdigest()
if "usb-hdd" in filename:
return "usbhdd"
+ if "arm" in filename:
+ return "arm"
+
if "scon" in filename:
return "alix"
path = os.path.join(basepath, self.path)
+ if not os.path.exists(path):
+ return
+
files = [f.filename for f in self.files]
# Make files that do not exists not loadable.