tg_bot.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import datetime
  2. import os
  3. import sys
  4. import telebot
  5. # 日志打印
  6. def log(msg):
  7. utc_time = datetime.datetime.utcnow()
  8. china_time = utc_time + datetime.timedelta(hours=8)
  9. print(f"[{china_time.strftime('%Y.%m.%d %H:%M:%S')}] {msg}")
  10. # 上传文件
  11. def upload_file(tb, chat_id, file_dir):
  12. doc = open(file_dir, 'rb')
  13. tb.send_document(chat_id, doc)
  14. # 上传文件夹内的文件
  15. def upload_folder(tb, chat_id, folder_dir):
  16. file_list = sorted(os.listdir(folder_dir))
  17. for file in file_list:
  18. path = os.path.join(folder_dir, file)
  19. if os.path.isfile(path):
  20. upload_file(tb, chat_id, path)
  21. else:
  22. upload_folder(tb, chat_id, path)
  23. # 上传
  24. def upload(tb, chat_id, dir):
  25. if tb is None:
  26. log('ERROR: 输入正确的token')
  27. return
  28. if chat_id is None:
  29. log('ERROR: 输入正确的chat_id')
  30. return
  31. if dir is None:
  32. log('ERROR: 请指定上传的文件路径')
  33. return
  34. if os.path.isfile(dir):
  35. upload_file(tb, chat_id, dir)
  36. else:
  37. upload_folder(tb, chat_id, dir)
  38. if __name__ == '__main__':
  39. argv = sys.argv[1:]
  40. if len(argv) != 3:
  41. log('ERROR: 参数错误,请以这种格式重新尝试\npython tg_bot.py $token $chat_id 待上传的路径')
  42. # Token
  43. TOKEN = argv[0]
  44. # chat_id
  45. chat_id = argv[1]
  46. # 待上传文件的路径
  47. upload_path = argv[2]
  48. #创建连接
  49. tb = telebot.TeleBot(TOKEN)
  50. #开始上传
  51. upload(tb, chat_id, upload_path)