filebot/main.py

76 lines
2.7 KiB
Python
Raw Normal View History

2022-10-06 13:44:35 +00:00
# -*- mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -*-
"""
help - list of commands\n
rights - get access rights\n
files - show list of files (get access)\n
id - get bot's id (get access)\n
share <ToxID> <file_name> - send file to friend (get access)\n
share --all <file_name> - send file to all friends (get access)\n
size <file_name> - get size of file (get access)\n
get <file_name> - get file with specified filename (get access)\n
get --all - get all files (get access)\n
stats - show statistics (write access)\n
del <file_name> - remove file with specified filename (delete access)\n
rename <file_name> --new <new_file_name> - rename file (delete access)\n
user <ToxID> <rights> - new rights (example: rwdm) for user (masters only)\n
status <new_status> - new status message (masters only)\n
name <new_name> - new name (masters only)\n
message <ToxID> <message_text> - send message to friend (masters only)\n
message --all <message_text> - send message to all friends (masters only)\n
stop - stop bot (masters only)\n
fsize <folder_size_in_MB> - set folder size in MB (masters only)\n
Users with write access can send files to bot.
"""
2016-04-21 19:55:31 +00:00
import time
import sys
2022-10-06 13:44:35 +00:00
from bootstrap import node_generator
from bot import Bot, tox_factory, ProfileHelper
from callbacks import init_callbacks
from settings import Settings
global LOG
import logging
logging.basicConfig(level=10)
LOG = logging.getLogger(__name__)
2016-04-21 19:55:31 +00:00
class FileBot(object):
def __init__(self, path):
super(FileBot, self).__init__()
self.tox = None
self.stop = False
self.profile = None
self.path = path
2022-10-06 13:44:35 +00:00
LOG.info('FileBot v0.1.2+')
2016-04-21 19:55:31 +00:00
def main(self):
self.tox = tox_factory(ProfileHelper.open_profile(self.path))
init_callbacks(self.tox)
# bootstrap
for data in node_generator():
self.tox.bootstrap(*data)
settings = Settings()
self.profile = Bot(self.tox)
2022-10-06 13:44:35 +00:00
LOG.debug('Iterate')
2016-04-21 19:55:31 +00:00
try:
while not self.stop:
self.tox.iterate()
time.sleep(self.tox.iteration_interval() / 1000.0)
except KeyboardInterrupt:
2016-04-26 17:42:20 +00:00
settings.save()
data = self.tox.get_savedata()
ProfileHelper.save_profile(data)
del self.tox
2016-04-21 19:55:31 +00:00
if __name__ == '__main__':
2022-10-06 13:44:35 +00:00
if len(sys.argv) <= 1:
2016-04-21 19:55:31 +00:00
raise IOError('Path to save file not found')
2022-10-06 13:44:35 +00:00
path = sys.argv[1]
bot = FileBot(path)
bot.main()
2016-04-21 19:55:31 +00:00