From 8f7c570b48eee235261ff1d5e33777991cdcf0a6 Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Sun, 2 Jul 2017 03:49:57 +0300 Subject: [PATCH 01/26] Fixed dialogs notifications --- bot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bot.py b/bot.py index 5253700..b8c7890 100644 --- a/bot.py +++ b/bot.py @@ -127,7 +127,7 @@ def callback_buttons(call): 'Вы в беседе {}'.format(replace_shields(chat['title']))).wait() if chat['title'].replace('\\', ''): chat['title'] = chat['title'].replace('\\', '') - bot.send_message(call.message.from_user.id, + bot.send_message(call.from_user.id, 'Вы в беседе {}'.format(chat['title']), parse_mode='HTML').wait() currentchat[str(call.from_user.id)] = call.data @@ -137,7 +137,7 @@ def callback_buttons(call): user = vk.API(session).users.get(user_ids=call.data, fields=[])[0] bot.answer_callback_query(call.id, 'Вы в чате с {} {}'.format(user['first_name'], user['last_name'])).wait() - bot.send_message(call.message.from_user.id, + bot.send_message(call.from_user.id, 'Вы в чате с {} {}'.format(user['first_name'], user['last_name']), parse_mode='HTML').wait() currentchat[str(call.from_user.id)] = call.data From 89141f5535e14cf4e57df28a0e7db44d0064f64b Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Sun, 2 Jul 2017 03:54:15 +0300 Subject: [PATCH 02/26] Full data erase on /stop command --- bot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bot.py b/bot.py index b8c7890..7f8d891 100644 --- a/bot.py +++ b/bot.py @@ -173,6 +173,8 @@ def stop_thread(message): t.terminate() th.join() vk_tokens.delete(str(message.from_user.id)) + vk_dialogs.pop(str(message.from_user.id), None) + currentchat.pop(str(message.from_user.id), None) def extract_unique_code(text): From 104e5d83459cb2bdcf5e5256aca9e3069fff5f54 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 04:24:25 +0300 Subject: [PATCH 03/26] fix --- bot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot.py b/bot.py index 7f8d891..a7c420e 100644 --- a/bot.py +++ b/bot.py @@ -106,7 +106,7 @@ def create_markup(message, user, page, edit=False): if edit: bot.edit_message_text( 'Выберите Диалог: {}/{} стр.'.format(page + 1, len(vk_dialogs[str(user)])), - message.from_user.id, message.message_id, + message.chat.id, message.message_id, parse_mode='HTML', reply_markup=markup).wait() else: bot.send_message(message.from_user.id, From 6861cd83065c548dc4ab21b0ec38fbfb82fa1534 Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Sun, 2 Jul 2017 18:50:50 +0300 Subject: [PATCH 04/26] Update from webhook --- bot.py | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/bot.py b/bot.py index 91eda8d..84d5afc 100644 --- a/bot.py +++ b/bot.py @@ -12,9 +12,7 @@ import wget from PIL import Image from telebot import types -import cherrypy - -from credentials import token, vk_app_id, bot_url, local_port +from credentials import token, vk_app_id from vk_messages import VkMessage, VkPolling logging.basicConfig(format='%(levelname)-8s [%(asctime)s] %(message)s', level=logging.WARNING, filename='vk.log') @@ -25,8 +23,7 @@ vk_dialogs = {} FILE_URL = 'https://api.telegram.org/file/bot{0}/{1}' -tokens_pool = redis.ConnectionPool(host='localhost', port=6379, db=0) -vk_tokens = redis.StrictRedis(connection_pool=tokens_pool) +vk_tokens = redis.from_url(os.environ.get("REDIS_URL")) currentchat = {} @@ -642,21 +639,4 @@ def reply_text(message): print('Error: {}'.format(traceback.format_exc())) -# bot.polling(none_stop=True) -class WebhookServer(object): - # index равнозначно /, т.к. отсутствию части после ip-адреса (грубо говоря) - @cherrypy.expose - def index(self): - length = int(cherrypy.request.headers['content-length']) - json_string = cherrypy.request.body.read(length).decode("utf-8") - update = telebot.types.Update.de_json(json_string) - bot.process_new_updates([update]) - return '' - - -if __name__ == '__main__': - bot.remove_webhook() - bot.set_webhook('https://{}/{}/'.format(bot_url, token)) - cherrypy.config.update( - {'server.socket_host': '127.0.0.1', 'server.socket_port': local_port, 'engine.autoreload.on': False}) - cherrypy.quickstart(WebhookServer(), '/', {'/': {}}) +bot.polling(none_stop=True) From 31883dd7196a01ea2a91cad46e690f4e885f6521 Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Sun, 2 Jul 2017 18:51:59 +0300 Subject: [PATCH 05/26] Heroku vars update --- credentials.py | 7 +++---- vk_messages.py | 4 +--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/credentials.py b/credentials.py index 771a575..3bfa200 100644 --- a/credentials.py +++ b/credentials.py @@ -1,4 +1,3 @@ -token = '123456789:hciowedjejd092jjasdasdmdkpoaasd' -vk_app_id = "5678910" -bot_url = 'www.mybot.com' -local_port = 7777 \ No newline at end of file +import os +token = os.environ['TELEGRAM_TOKEN'] +vk_app_id = os.environ['VK_APP'] \ No newline at end of file diff --git a/vk_messages.py b/vk_messages.py index 8a4137a..363b0d8 100644 --- a/vk_messages.py +++ b/vk_messages.py @@ -2,12 +2,10 @@ import os import redis import requests import time -import traceback import vk import wget -tokens_pool = redis.ConnectionPool(host='localhost', port=6379, db=0) -vk_tokens = redis.StrictRedis(connection_pool=tokens_pool) +vk_tokens = redis.from_url(os.environ.get("REDIS_URL")) class VkPolling: From d0b3cf7107567b92510bfe7fa3435d5f2bc9327a Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 18:55:58 +0300 Subject: [PATCH 06/26] Create app.json --- app.json | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app.json diff --git a/app.json b/app.json new file mode 100644 index 0000000..491c56f --- /dev/null +++ b/app.json @@ -0,0 +1,27 @@ +{ + "name": "tgvkbot", + "description": "Бот позволяет получать и отправлять сообщения VK находясь в Telegram", + "repository": "https://github.com/Kylmakalle/tgvkbot", + "keywords": ["vk", "bot", "telegram"], + "env": { + "TELEGRAM_TOKEN": { + "description": "Telegram bot API токен от https://t.me/BotFather", + "value": "123456789:AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLL" + }, + "ADMIN1": { + "description": "ID VK приложения из https://vk.com/apps?act=manage", + "required": true + }, + "addons": [ + { + "plan": "heroku-redis:hobby-dev", + "as": "Redis" + } + ], +"formation": { + "bot": { + "quantity": 1, + "size": "free" + } + } +} From 8a2c0a517bd8a01f1d6887e76a834551cd2d5055 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 18:56:48 +0300 Subject: [PATCH 07/26] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c2c1df9..2f59db7 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,5 @@ Полный функционал, инструкции по лёгкой установке и деплою (на Heroku), а так же хостингу на своём сервере будут позже. **Stay Tuned!** + +[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) From a5ea32df9f4dafc07797a794ff422eb99d5b6aac Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 18:57:42 +0300 Subject: [PATCH 08/26] Update app.json --- app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.json b/app.json index 491c56f..091a7e0 100644 --- a/app.json +++ b/app.json @@ -8,7 +8,7 @@ "description": "Telegram bot API токен от https://t.me/BotFather", "value": "123456789:AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLL" }, - "ADMIN1": { + "VK_APP": { "description": "ID VK приложения из https://vk.com/apps?act=manage", "required": true }, From 71c4c53924e5d4355148c26d54b2019fb1e9d2b5 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 18:59:31 +0300 Subject: [PATCH 09/26] Update app.json --- app.json | 1 + 1 file changed, 1 insertion(+) diff --git a/app.json b/app.json index 091a7e0..6199a6a 100644 --- a/app.json +++ b/app.json @@ -11,6 +11,7 @@ "VK_APP": { "description": "ID VK приложения из https://vk.com/apps?act=manage", "required": true + } }, "addons": [ { From f84a9ba45593d59f78823e8c429ffe07ba1b15d7 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:24:53 +0300 Subject: [PATCH 10/26] Update LICENSE --- LICENSE | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/LICENSE b/LICENSE index 2f77c35..0fbbd67 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,7 @@ -MIT License +Copyright (c) 2017 А. Сергей -Copyright (c) 2017 Sergey +Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. From 73bbc60cf35d4f46a5b8f2bfe71c666f4f165d5a Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:25:56 +0300 Subject: [PATCH 11/26] Update LICENSE --- LICENSE | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/LICENSE b/LICENSE index 0fbbd67..1038e51 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,20 @@ -Copyright (c) 2017 А. Сергей +MIT License -Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий: +Copyright (c) 2017 Sergey -Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: -ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From f81b294c18859219fefeba8312416d10738c932e Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:40:37 +0300 Subject: [PATCH 12/26] Create requirments.txt --- requirments.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 requirments.txt diff --git a/requirments.txt b/requirments.txt new file mode 100644 index 0000000..b250be9 --- /dev/null +++ b/requirments.txt @@ -0,0 +1,6 @@ +pyTelegramBotAPI +vk +redis +Pillow +ujson +wget From d18bae2daaf7b7047448f056f4909abb8f70855e Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:40:51 +0300 Subject: [PATCH 13/26] Create Procfile --- Procfile | 1 + 1 file changed, 1 insertion(+) create mode 100644 Procfile diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..e1d63e3 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +bot: python3 bot.py From fabf2e8ee1edc0f530e624dfbd1b9b6802454b28 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:47:51 +0300 Subject: [PATCH 14/26] Update app.json --- app.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app.json b/app.json index 6199a6a..af6ac4c 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,13 @@ "name": "tgvkbot", "description": "Бот позволяет получать и отправлять сообщения VK находясь в Telegram", "repository": "https://github.com/Kylmakalle/tgvkbot", + "website": "https://asergey.me/tgvkbot/", "keywords": ["vk", "bot", "telegram"], + "buildpacks":[ + { + "url": "heroku/python" + } + ], "env": { "TELEGRAM_TOKEN": { "description": "Telegram bot API токен от https://t.me/BotFather", From 73072b4e6d71bad9728393a767ab8a400a6131f9 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:51:58 +0300 Subject: [PATCH 15/26] Create runtime.txt --- runtime.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 runtime.txt diff --git a/runtime.txt b/runtime.txt new file mode 100644 index 0000000..c91e43b --- /dev/null +++ b/runtime.txt @@ -0,0 +1 @@ +python-3.6.1 From ca2dacc35f4ef39662590dbc656112abc2ce2f61 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:53:49 +0300 Subject: [PATCH 16/26] Update app.json --- app.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app.json b/app.json index af6ac4c..00243b7 100644 --- a/app.json +++ b/app.json @@ -4,11 +4,6 @@ "repository": "https://github.com/Kylmakalle/tgvkbot", "website": "https://asergey.me/tgvkbot/", "keywords": ["vk", "bot", "telegram"], - "buildpacks":[ - { - "url": "heroku/python" - } - ], "env": { "TELEGRAM_TOKEN": { "description": "Telegram bot API токен от https://t.me/BotFather", From 32ddca4e4f6e630743b4feaca311b09b887bfab0 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:56:05 +0300 Subject: [PATCH 17/26] Update app.json --- app.json | 1 - 1 file changed, 1 deletion(-) diff --git a/app.json b/app.json index 00243b7..6199a6a 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,6 @@ "name": "tgvkbot", "description": "Бот позволяет получать и отправлять сообщения VK находясь в Telegram", "repository": "https://github.com/Kylmakalle/tgvkbot", - "website": "https://asergey.me/tgvkbot/", "keywords": ["vk", "bot", "telegram"], "env": { "TELEGRAM_TOKEN": { From f7eb111e5bec9eceffb4f2422b79137d0695577e Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 19:58:24 +0300 Subject: [PATCH 18/26] Update app.json --- app.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app.json b/app.json index 6199a6a..c3292b1 100644 --- a/app.json +++ b/app.json @@ -3,6 +3,11 @@ "description": "Бот позволяет получать и отправлять сообщения VK находясь в Telegram", "repository": "https://github.com/Kylmakalle/tgvkbot", "keywords": ["vk", "bot", "telegram"], + "buildpacks":[ + { + "url": "heroku/python" + } + ], "env": { "TELEGRAM_TOKEN": { "description": "Telegram bot API токен от https://t.me/BotFather", From af3f7856ada0be80946ce98c198d0d5b02798c03 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 20:02:56 +0300 Subject: [PATCH 19/26] Rename requirments.txt to requirements.txt --- requirments.txt => requirements.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename requirments.txt => requirements.txt (100%) diff --git a/requirments.txt b/requirements.txt similarity index 100% rename from requirments.txt rename to requirements.txt From 398b1328c379311c59e8b4e6c8b982df6595f916 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 20:03:32 +0300 Subject: [PATCH 20/26] Update app.json --- app.json | 1 + 1 file changed, 1 insertion(+) diff --git a/app.json b/app.json index c3292b1..2ad6f46 100644 --- a/app.json +++ b/app.json @@ -3,6 +3,7 @@ "description": "Бот позволяет получать и отправлять сообщения VK находясь в Telegram", "repository": "https://github.com/Kylmakalle/tgvkbot", "keywords": ["vk", "bot", "telegram"], + "website": "https://asergey.me/tgvkbot/", "buildpacks":[ { "url": "heroku/python" From 114262824111f9ad7ffba2a4e6a2a9d868f24a97 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 2 Jul 2017 23:45:01 +0300 Subject: [PATCH 21/26] Update README.md --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 2f59db7..ea78efc 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,4 @@ # tgvkbot Бот позволяет получать и отправлять сообщения VK находясь в Telegram -Команды: `/start`, `/stop` - -Краткую инструкцию бот пришлёт в чат. -# Бот в стадии разработки! -Полный функционал, инструкции по лёгкой установке и деплою (на Heroku), а так же хостингу на своём сервере будут позже. - -**Stay Tuned!** - [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) From 8e2c3e993dfef4ef089d18f7b343b3b97a3c55de Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 3 Jul 2017 03:51:54 +0300 Subject: [PATCH 22/26] Update bot.py --- bot.py | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/bot.py b/bot.py index 84d5afc..1fc31e0 100644 --- a/bot.py +++ b/bot.py @@ -607,21 +607,7 @@ def reply_text(message): verifycode(code) create_thread(message.from_user.id, code) bot.send_message(message.from_user.id, 'Вход выполнен!').wait() - # ---------------- INSTRUCTIONS ---------------- # - bot.send_message(message.from_user.id, 'Бот позволяет получать и отвечать на текстовые сообщения' - ' из ВКонтакте\nПример личного сообщения:').wait() - bot.send_message(message.from_user.id, '*Иван Петров:*\nПривет, я тут классный мессенджер нашёл,' - ' попробуешь? telegram.org/download', - parse_mode='Markdown').wait() - bot.send_message(message.from_user.id, 'Для сообщений из групповых чатов будет указываться' - ' чат после имени отправителя:').wait() - bot.send_message(message.from_user.id, '*Ник Невидов @ My English is perfect:*\n' - 'London is the capital of Great Britain', - parse_mode='Markdown').wait() - bot.send_message(message.from_user.id, 'Чтобы ответить, используй Reply на нужное сообщение.' - ' (нет, на эти не сработает, нужно реальное)', - parse_mode='Markdown').wait() - # ---------------- INSTRUCTIONS ---------------- # + bot.send_message(message.from_user.id, '[Использование](https://asergey.me/tgvkbot/usage/)', parse_mode='Markdown').wait() except: bot.send_message(message.from_user.id, 'Неверная ссылка, попробуй ещё раз!').wait() else: From 45d9a37f0d66d52511a57976da996723412086f9 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 3 Jul 2017 12:42:24 +0300 Subject: [PATCH 23/26] Audio messages Support --- bot.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bot.py b/bot.py index 1fc31e0..71e5c77 100644 --- a/bot.py +++ b/bot.py @@ -397,8 +397,9 @@ def send_doc(message, userid, group, forward_messages=None): elif filetype == 'voice': openedfile = open(file, 'rb') files = {'file': openedfile} - fileonserver = ujson.loads(requests.post(vk.API(session).docs.getUploadServer()['upload_url'], - files=files).text) + fileonserver = ujson.loads( + requests.post(vk.API(session).docs.getUploadServer(type='audio_message')['upload_url'], + files=files).text) attachment = vk.API(session).docs.save(file=fileonserver['file'], title='Аудиосообщение', tags='') openedfile.close() From 036af574f24e855339cad492e0712e35c0b439a3 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 3 Jul 2017 20:32:55 +0300 Subject: [PATCH 24/26] vk api timeout increase --- vk_messages.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vk_messages.py b/vk_messages.py index 363b0d8..d06c498 100644 --- a/vk_messages.py +++ b/vk_messages.py @@ -24,7 +24,7 @@ class VkPolling: print('Error: {}'.format(e)) if updates: handle_updates(vk_user, bot, chat_id, updates) - for i in range(50): + for i in range(60): if self._running: time.sleep(0.1) else: From ba80706a7a6b352aa0a14233f300a10bd54321c1 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 3 Jul 2017 20:42:28 +0300 Subject: [PATCH 25/26] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index ea78efc..b8d1d97 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,14 @@ Бот позволяет получать и отправлять сообщения VK находясь в Telegram [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) + + +[Ветка](https://github.com/Kylmakalle/tgvkbot/tree/webhook) для деплоя на локальной машине (поддерживаются вебхуки и лонгполлинг, закомментируйте и раскомментируйте нужные строки) + + +Настройка вебхуков по гайду от [@Groosha](https://www.gitbook.com/book/groosha/telegram-bot-lessons) + +## Stay Tuned! + + +_Полноценные комментарии к коду будут чуть позже_ From 1e2abc3018c166dd710f11978e02cb1d1a9003a7 Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Tue, 4 Jul 2017 15:37:37 +0300 Subject: [PATCH 26/26] More accurate message handler --- bot.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/bot.py b/bot.py index 71e5c77..57cd988 100644 --- a/bot.py +++ b/bot.py @@ -608,21 +608,22 @@ def reply_text(message): verifycode(code) create_thread(message.from_user.id, code) bot.send_message(message.from_user.id, 'Вход выполнен!').wait() - bot.send_message(message.from_user.id, '[Использование](https://asergey.me/tgvkbot/usage/)', parse_mode='Markdown').wait() + bot.send_message(message.from_user.id, '[Использование](https://asergey.me/tgvkbot/usage/)', + parse_mode='Markdown').wait() except: bot.send_message(message.from_user.id, 'Неверная ссылка, попробуй ещё раз!').wait() else: bot.send_message(message.from_user.id, 'Вход уже выполнен!\n/stop для выхода.').wait() - return - if message.reply_to_message and message.reply_to_message.text == 'Поиск беседы 🔍': - search_users(message, message.text) - return - try: - vk_sender(message, send_text) - except Exception: - bot.reply_to(message, 'Произошла неизвестная ошибка при отправке', - parse_mode='Markdown').wait() + elif message.reply_to_message and message.reply_to_message.text == 'Поиск беседы 🔍': + search_users(message, message.text) + + else: + try: + vk_sender(message, send_text) + except Exception: + bot.reply_to(message, 'Произошла неизвестная ошибка при отправке', + parse_mode='Markdown').wait() print('Error: {}'.format(traceback.format_exc()))