27 lines
No EOL
730 B
Python
27 lines
No EOL
730 B
Python
from classes.chunk import Chunk
|
|
from classes.database import Database
|
|
|
|
import hashlib
|
|
|
|
class File:
|
|
def getUUID(self):
|
|
db = Database()
|
|
db.getFileUUID(self)
|
|
|
|
def __init__(self, name, directory, uuid=None):
|
|
self.name = name
|
|
self.directory = directory
|
|
self.uuid = uuid or self.getUUID()
|
|
|
|
def getFullPath(self):
|
|
return self.directory / self.name
|
|
|
|
def getHash(self):
|
|
return self.getChunk(-1).getHash()
|
|
|
|
def getChunk(self, count, size=1048576):
|
|
with open(self.getFullPath(), "rb") as binary:
|
|
binary.seek((count * size) if count > 0 else 0)
|
|
data = binary.read(size if count >= 0 else None)
|
|
|
|
return Chunk(self, count, data) |