From d7204f87cf98fe6db5289e5b646699108269e1c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=91?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D0=BD=D0=BE=D0=B2?= Date: Mon, 17 Jun 2019 12:31:47 +0300 Subject: [PATCH] variable chat_id is disabled --- dedupfs/dedupfs.py | 15 +++++++-------- download_service.py | 33 ++++++++++++++++----------------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/dedupfs/dedupfs.py b/dedupfs/dedupfs.py index cf222ff..fd62362 100644 --- a/dedupfs/dedupfs.py +++ b/dedupfs/dedupfs.py @@ -1,4 +1,3 @@ - #!/usr/bin/python # Documentation. {{{1 @@ -66,7 +65,7 @@ from subprocess import Popen, PIPE -chat_id = 12345 +# chat_id = 709766994 def main(): # {{{1 """ This function enables using dedupfs.py as a shell script that creates FUSE @@ -801,7 +800,7 @@ def __write_blocks(self, inode, buf, apparent_size): # {{{3 row = self.conn.execute('SELECT id FROM hashes WHERE hash = ?', (encoded_digest,)).fetchone() if row: hash_id = row[0] - existing_block = self.decompress(self.__get_block_from_telegram(str(chat_id), digest.encode('hex'))) + existing_block = self.decompress(self.__get_block_from_telegram(digest.encode('hex'))) # Check for hash collisions. if new_block != existing_block: # Found a hash collision: dump debugging info and exit. @@ -821,7 +820,7 @@ def __write_blocks(self, inode, buf, apparent_size): # {{{3 self.conn.execute('INSERT INTO "index" (inode, hash_id, block_nr) VALUES (?, ?, ?)', (inode, hash_id, block_nr)) else: - process = Popen(["python3.6", "download_service.py", "upload", str(chat_id), digest.encode('hex')], stdin=PIPE, + process = Popen(["python3.6", "download_service.py", "upload", digest.encode('hex')], stdin=PIPE, bufsize=-1) process.stdin.write(self.compress(new_block)) process.stdin.close() @@ -883,7 +882,7 @@ def __remove(self, path, check_empty=False): # {{{3 def __verify_write(self, block, digest, block_nr, inode): # {{{3 if self.verify_writes: - saved_value = self.decompress(self.__get_block_from_telegram(str(chat_id), digest.encode('hex'))) + saved_value = self.decompress(self.__get_block_from_telegram(digest.encode('hex'))) if saved_value != block: # The data block was corrupted when it was written or read. dumpfile_corruption = '/tmp/dedupfs-corruption-%i' % time.time() @@ -1169,9 +1168,9 @@ def __rollback_changes(self, nested=False): # {{{3 self.logger.info('Rolling back changes') self.conn.rollback() - def __get_block_from_telegram(self, chat_id, digest): + def __get_block_from_telegram(self, digest): buf = tempfile.NamedTemporaryFile() - process = Popen(["python3.6", "download_service.py", "download", str(chat_id), str(digest)], stdout=buf, + process = Popen(["python3.6", "download_service.py", "download", str(digest)], stdout=buf, bufsize=-1, shell=False) process.wait() buf.seek(0) @@ -1192,7 +1191,7 @@ def __get_file_buffer(self, path): # {{{3 for row in self.conn.execute(query, (inode,)).fetchall(): # TODO Make the file system more robust against failure by doing # something sensible when self.blocks.has_key(digest) is false. - buf.write(self.decompress(self.__get_block_from_telegram(str(chat_id),str(row[0])))) + buf.write(self.decompress(self.__get_block_from_telegram(str(row[0])))) self.buffers[path] = buf return buf diff --git a/download_service.py b/download_service.py index b530ccd..94dcb56 100644 --- a/download_service.py +++ b/download_service.py @@ -84,15 +84,17 @@ def on_upload_progress(send_bytes, total_bytes): return 0 # -def download_block(chat_id, hash_uid): +def download_block(hash_uid,chat_id=None): try: hash_uid = str(hash_uid) - chat_id = str(chat_id) + if chat_id: + chat_id = str(chat_id) + chat_id = int(chat_id) if chat_id.isdigit() else chat_id os.chdir(path_home) if not client.is_connected(): client.start() - chat_id = int(chat_id) if chat_id.isdigit() else chat_id - entity = client.get_entity(chat_id) + + entity = client.get_entity(client.get_me()) messages = client.get_messages(entity, limit=40,search=hash_uid) for i in range(len(messages)): msg = messages[i] @@ -109,15 +111,16 @@ def download_block(chat_id, hash_uid): client.disconnect() -def upload_block(bytesin, chat_id, hash_uid): +def upload_block(bytesin, hash_uid,chat_id=None): try: hash_uid = str(hash_uid) - chat_id = str(chat_id) + if chat_id: + chat_id = str(chat_id) + chat_id = int(chat_id) if chat_id.isdigit() else chat_id os.chdir(path_home) if not client.is_connected(): client.start() - chat_id = int(chat_id) if chat_id.isdigit() else chat_id - entity = client.get_entity(chat_id) + entity = client.get_entity(client.get_me()) message = client.send_file(entity, file=bytesin, caption=f'{hash_uid}', @@ -138,15 +141,13 @@ def main(argv): try: service = str(argv[1]) if service == 'download': - chat_id = str(argv[2]) - uid = str(argv[3]) - download_block(chat_id=chat_id, hash_uid=uid) + uid = str(argv[2]) + download_block(hash_uid=uid) return 0 elif service == 'upload': data = sys.stdin.buffer.read() - chat_id = str(argv[2]) - uid = str(argv[3]) - upload_block(bytesin=data, chat_id=chat_id, hash_uid=uid) + uid = str(argv[2]) + upload_block(bytesin=data, hash_uid=uid) return 0 except Exception as e: @@ -160,6 +161,4 @@ def main(argv): if __name__ == '__main__': import sys - main(sys.argv[0:]) - -# download_block("slavikmr","d46610254a0afb93228832bdb6122d27e4bcb6c8") \ No newline at end of file + main(sys.argv[0:]) \ No newline at end of file