From ca14f42d723a935e27424d04c4d52323331cfa76 Mon Sep 17 00:00:00 2001 From: FullGreaM Date: Mon, 13 Sep 2021 09:44:47 +0300 Subject: [PATCH] upload pypl data --- dist/vk_callback-1.0.1.tar.gz | Bin 0 -> 6402 bytes setup.py | 2 +- vk_callback.egg-info/PKG-INFO | 10 + vk_callback.egg-info/SOURCES.txt | 8 + vk_callback.egg-info/dependency_links.txt | 1 + vk_callback.egg-info/not-zip-safe | 1 + vk_callback.egg-info/top_level.txt | 1 + vk_callback/__init__.py | 201 +++++++++++++++++- .../__pycache__/docs.cpython-36.pyc | Bin 19587 -> 0 bytes .../__pycache__/tools.cpython-36.pyc | Bin 293 -> 0 bytes vk_callback/vk_callback_data/docs.py | 183 ---------------- vk_callback/vk_callback_data/tools.py | 7 - 12 files changed, 219 insertions(+), 195 deletions(-) create mode 100644 dist/vk_callback-1.0.1.tar.gz create mode 100644 vk_callback.egg-info/PKG-INFO create mode 100644 vk_callback.egg-info/SOURCES.txt create mode 100644 vk_callback.egg-info/dependency_links.txt create mode 100644 vk_callback.egg-info/not-zip-safe create mode 100644 vk_callback.egg-info/top_level.txt delete mode 100644 vk_callback/vk_callback_data/__pycache__/docs.cpython-36.pyc delete mode 100644 vk_callback/vk_callback_data/__pycache__/tools.cpython-36.pyc delete mode 100644 vk_callback/vk_callback_data/docs.py delete mode 100644 vk_callback/vk_callback_data/tools.py diff --git a/dist/vk_callback-1.0.1.tar.gz b/dist/vk_callback-1.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6222d6ecd31a548aae23c01567f06563b6f75c04 GIT binary patch literal 6402 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 Qv|mB{e>1GCIsl*m0HrCTm;e9( literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 6eb1c3d..a2ac60a 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup setup(name='vk_callback', - version='1.0', + version='1.0.1', description='Develop vk callback applications and bots', packages=['vk_callback'], author_email='ill2gms@ya.ru', diff --git a/vk_callback.egg-info/PKG-INFO b/vk_callback.egg-info/PKG-INFO new file mode 100644 index 0000000..6f883ca --- /dev/null +++ b/vk_callback.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: vk-callback +Version: 1.0.1 +Summary: Develop vk callback applications and bots +Home-page: UNKNOWN +Author: UNKNOWN +Author-email: ill2gms@ya.ru +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/vk_callback.egg-info/SOURCES.txt b/vk_callback.egg-info/SOURCES.txt new file mode 100644 index 0000000..f9c270a --- /dev/null +++ b/vk_callback.egg-info/SOURCES.txt @@ -0,0 +1,8 @@ +setup.cfg +setup.py +vk_callback/__init__.py +vk_callback.egg-info/PKG-INFO +vk_callback.egg-info/SOURCES.txt +vk_callback.egg-info/dependency_links.txt +vk_callback.egg-info/not-zip-safe +vk_callback.egg-info/top_level.txt \ No newline at end of file diff --git a/vk_callback.egg-info/dependency_links.txt b/vk_callback.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/vk_callback.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/vk_callback.egg-info/not-zip-safe b/vk_callback.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/vk_callback.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/vk_callback.egg-info/top_level.txt b/vk_callback.egg-info/top_level.txt new file mode 100644 index 0000000..5249e28 --- /dev/null +++ b/vk_callback.egg-info/top_level.txt @@ -0,0 +1 @@ +vk_callback diff --git a/vk_callback/__init__.py b/vk_callback/__init__.py index 8226cdc..2c6385a 100644 --- a/vk_callback/__init__.py +++ b/vk_callback/__init__.py @@ -1,9 +1,202 @@ -import flask +import flask, traceback from flask import Flask, render_template, request, redirect, url_for, flash, make_response, jsonify, send_file, abort -from .vk_callback_data import docs as vk_docs -from .vk_callback_data import tools as vk_tools -import traceback + +class vk_docs: # Fuck you twine!!! + hostname = 'http://localhost:5050' + + docs_info = { + "ru": ''' + + + Как подключить callback + + + +
+

Введение и написание кода

+

Наш модуль написан для работы с callback событиями серверов vk.com и создания ботов на принципе callback. Этот метод подходит для нагруженных проектов, которые соединяют в себе несколько ботов, образуя сеть ботов.

+

Итак, наш модуль имеет следующие классы: server, group, vk_event, vk_callbackException. Чтобы вы могли написать бота, вам нужны только два из них: server и group. Перейдём непосрдественно к коду:

+

Для начала, мы должны создать класс, который наследуется от класса server и создадим там метод event со следующими аргументами:

+
import vk_callback
+
+
+class bot(vk_callback.server):
+    def event(self, group_obj, Event):
+        pass  # Сюда будем писать код
+

group_obj отвечает за объект группы, Event - это объект события.

+

У group_obj есть следующие параметры: id, return_str, secret_key. Для разработки бота нам достаточно только id, где id это id группы.

+

У Event есть следующие параметры: type, object, group_id, event_id, secret (всё тоже самое, что и в объекте события вк). Для object это словарь с параметрами объекта события.

+

Проверять секретный ключ нет необходимости, за это отвечает метод класса confirmation_secret. Перейдём же к самому интересному... Давайте подключим двух ботов и сделаем для них разные ответы, чтобы отчётливее продемонстрировать возможности ботов:

+

К нашему методу event мы добавим код, который мы хотим реализовать. Далее, мы ниже создаём объект класса bot и добавляем туда объекты класса group, которые будут являться объектами групп, к которым мы подключили callback. Затем, запускаем нашего бота

+
import vk_callback
+import vk_api
+import random
+
+
+class bot(vk_callback.server):
+    def event(self, group_obj, Event):
+        bot_1 = vk_api.VkApi(token='***').get_api()
+        bot_2 = vk_api.VkApi(token='***').get_api()
+        if Event.type == 'message_new':
+            if group_obj.id == 12345678:
+                bot_1.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hello')
+            else:
+                bot_2.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hi')
+
+
+bot = bot(host='website.ru', groups=[
+    vk_callback.group(12345678, return_str="11693324", secret_key="secret_key_here"),
+    vk_callback.group(87654321, return_str="1af47ed9", secret_key="secret_key_here")
+], port=8080)
+
+bot.start()
+

Как подключить callback

+

Подключить callback сервер к вашей группе очень просто! Для начала, заходим в настройки группы в раздел "работа с API", затем заходим в раздел callback

+
+ + +
+

Затем, нам нужно выбрать в настройках события, которые мы будем обрабатывать

+
+ +
+

Отлично! Теперь мы можем приступить к подключению нашего сервера. Для начала, скопируем что должен вернуть при подтверждении бот и его секретный ключ и вставим в код нашей программы, также скинем в объект айди нашей группы.

+
+
+

Запускаем сервер, в графе адреса заполняем адрес нашего сервера в формате crthst::rpl/айди_группы

+
+

Жмём подтвердить. Поздравляем, бот подключен!

+
+ +''', + "en": ''' + + + Как подключить callback + + + +
+

Introduction and code writing

+

Our module is designed to work with server callback events vk.com and creating bots based on the callback principle. This method is suitable for loaded projects that combine several bots to form a network of bots.

+

So, our module has the following classes: server, group, vk_event, vk_callbackException. In order for you to write a bot, you only need two of them: server & group. Let's go straight to the code:

+

First, we need to create a class that inherits from the server class and create the event method there with the following arguments:

+
import vk_callback
+
+
+class bot(vk_callback.server):
+    def event(self, group_obj, Event):
+        pass  # Here we will write the code
+

group_obj is responsible for the group object, Event is the event object.

+

group_obj has the following parameters: id, return_str, secret_key. To develop a bot, we only need an id, where id is the group id.

+

Event has the following parameters: type, object, group_id, event_id, secret (all the same as in the vk event object). For object, this is a dictionary with parameters for the event object.

+

There is no need to check the secret key.The method of the confirmation_secret class is responsible for this. Let's move on to the most interesting part... Let's connect two bots and make different responses for them to better demonstrate the capabilities of bots:

+

To our event method, we will add the code that we want to implement. Next, we create an object of the bot class below and add objects of the groupclassthere, which will be objects of the groups to which we connected the callback. Then, we launch our bot

+
import vk_callback
+import vk_api
+import random
+
+
+class bot(vk_callback.server):
+    def event(self, group_obj, Event):
+        bot_1 = vk_api.VkApi(token='***').get_api()
+        bot_2 = vk_api.VkApi(token='***').get_api()
+        if Event.type == 'message_new':
+            if group_obj.id == 12345678:
+                bot_1.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hello')
+            else:
+                bot_2.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hi')
+
+
+bot = bot(host='website.ru', groups=[
+    vk_callback.group(12345678, return_str="11693324", secret_key="secret_key_here"),
+    vk_callback.group(87654321, return_str="1af47ed9", secret_key="secret_key_here")
+], port=8080)
+
+bot.start()
+

How to connect callback

+

Connecting a callback server to your group is very simple! First, go to the group settings in the "API usage", section, then go to the callback section

+
+ + +
+

Then, we need to select the events that we will process in the settings

+
+ +
+

Great! Now we can start connecting our server. To begin with, we will copy what the bot should return when confirming and its secret key and paste it into the code of our program, as well as throw it into the ID object of our group.

+
+
+

Starting the server, in the address column, fill in the address of our server in the format crthst::rpl/group_id

+
+

Click confirm. Congratulations, the bot is connected!

+
+ +''' + } + + for lang in docs_info: + docs_info[lang] = docs_info[lang].replace('crthst::rpl', hostname) + + +class vk_tools: # Fuck you PyPl!!! + def repl_to_dict(args): + # print(args) + data = dict() + for arg in args: + data[arg] = args[arg] + # print(data) + return data + app = Flask(__name__) diff --git a/vk_callback/vk_callback_data/__pycache__/docs.cpython-36.pyc b/vk_callback/vk_callback_data/__pycache__/docs.cpython-36.pyc deleted file mode 100644 index d13fdffa92f254419c84d18abb910e3fc66a5dc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19587 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 diff --git a/vk_callback/vk_callback_data/__pycache__/tools.cpython-36.pyc b/vk_callback/vk_callback_data/__pycache__/tools.cpython-36.pyc deleted file mode 100644 index 181cd42016b0cc02567a4942532d4453b6d6dfc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmXr!<>d;MwM(4Fz`*brh~a<<$Z`PUVjduo!jQt)!Vtxf!W7J)$(+mx6aoQeAZ7t# zXCN+C0TLw)%?!1S6%sWJE)1~(wM;b(HB6EWHH?0Aswn3DYboMOF#%3C}|sRcRlCHe6nD?m;y<^U25Ol*u?i~>wW>_9fq1z;L% Y7ZSk+l)J@YlbfGXnv-e=)(g@K0P}%Be*gdg diff --git a/vk_callback/vk_callback_data/docs.py b/vk_callback/vk_callback_data/docs.py deleted file mode 100644 index 584be9e..0000000 --- a/vk_callback/vk_callback_data/docs.py +++ /dev/null @@ -1,183 +0,0 @@ -hostname = 'http://localhost:5050' - -docs_info = { - "ru": ''' - - - Как подключить callback - - - -
-

Введение и написание кода

-

Наш модуль написан для работы с callback событиями серверов vk.com и создания ботов на принципе callback. Этот метод подходит для нагруженных проектов, которые соединяют в себе несколько ботов, образуя сеть ботов.

-

Итак, наш модуль имеет следующие классы: server, group, vk_event, vk_callbackException. Чтобы вы могли написать бота, вам нужны только два из них: server и group. Перейдём непосрдественно к коду:

-

Для начала, мы должны создать класс, который наследуется от класса server и создадим там метод event со следующими аргументами:

-
import vk_callback
-
-
-class bot(vk_callback.server):
-    def event(self, group_obj, Event):
-        pass  # Сюда будем писать код
-

group_obj отвечает за объект группы, Event - это объект события.

-

У group_obj есть следующие параметры: id, return_str, secret_key. Для разработки бота нам достаточно только id, где id это id группы.

-

У Event есть следующие параметры: type, object, group_id, event_id, secret (всё тоже самое, что и в объекте события вк). Для object это словарь с параметрами объекта события.

-

Проверять секретный ключ нет необходимости, за это отвечает метод класса confirmation_secret. Перейдём же к самому интересному... Давайте подключим двух ботов и сделаем для них разные ответы, чтобы отчётливее продемонстрировать возможности ботов:

-

К нашему методу event мы добавим код, который мы хотим реализовать. Далее, мы ниже создаём объект класса bot и добавляем туда объекты класса group, которые будут являться объектами групп, к которым мы подключили callback. Затем, запускаем нашего бота

-
import vk_callback
-import vk_api
-import random
-
-
-class bot(vk_callback.server):
-    def event(self, group_obj, Event):
-        bot_1 = vk_api.VkApi(token='***').get_api()
-        bot_2 = vk_api.VkApi(token='***').get_api()
-        if Event.type == 'message_new':
-            if group_obj.id == 12345678:
-                bot_1.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hello')
-            else:
-                bot_2.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hi')
-
-
-bot = bot(host='website.ru', groups=[
-    vk_callback.group(12345678, return_str="11693324", secret_key="secret_key_here"),
-    vk_callback.group(87654321, return_str="1af47ed9", secret_key="secret_key_here")
-], port=8080)
-
-bot.start()
-

Как подключить callback

-

Подключить callback сервер к вашей группе очень просто! Для начала, заходим в настройки группы в раздел "работа с API", затем заходим в раздел callback

-
- - -
-

Затем, нам нужно выбрать в настройках события, которые мы будем обрабатывать

-
- -
-

Отлично! Теперь мы можем приступить к подключению нашего сервера. Для начала, скопируем что должен вернуть при подтверждении бот и его секретный ключ и вставим в код нашей программы, также скинем в объект айди нашей группы.

-
-
-

Запускаем сервер, в графе адреса заполняем адрес нашего сервера в формате crthst::rpl/айди_группы

-
-

Жмём подтвердить. Поздравляем, бот подключен!

-
- -''', - "en": ''' - - - Как подключить callback - - - -
-

Introduction and code writing

-

Our module is designed to work with server callback events vk.com and creating bots based on the callback principle. This method is suitable for loaded projects that combine several bots to form a network of bots.

-

So, our module has the following classes: server, group, vk_event, vk_callbackException. In order for you to write a bot, you only need two of them: server & group. Let's go straight to the code:

-

First, we need to create a class that inherits from the server class and create the event method there with the following arguments:

-
import vk_callback
-
-
-class bot(vk_callback.server):
-    def event(self, group_obj, Event):
-        pass  # Here we will write the code
-

group_obj is responsible for the group object, Event is the event object.

-

group_obj has the following parameters: id, return_str, secret_key. To develop a bot, we only need an id, where id is the group id.

-

Event has the following parameters: type, object, group_id, event_id, secret (all the same as in the vk event object). For object, this is a dictionary with parameters for the event object.

-

There is no need to check the secret key.The method of the confirmation_secret class is responsible for this. Let's move on to the most interesting part... Let's connect two bots and make different responses for them to better demonstrate the capabilities of bots:

-

To our event method, we will add the code that we want to implement. Next, we create an object of the bot class below and add objects of the groupclassthere, which will be objects of the groups to which we connected the callback. Then, we launch our bot

-
import vk_callback
-import vk_api
-import random
-
-
-class bot(vk_callback.server):
-    def event(self, group_obj, Event):
-        bot_1 = vk_api.VkApi(token='***').get_api()
-        bot_2 = vk_api.VkApi(token='***').get_api()
-        if Event.type == 'message_new':
-            if group_obj.id == 12345678:
-                bot_1.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hello')
-            else:
-                bot_2.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hi')
-
-
-bot = bot(host='website.ru', groups=[
-    vk_callback.group(12345678, return_str="11693324", secret_key="secret_key_here"),
-    vk_callback.group(87654321, return_str="1af47ed9", secret_key="secret_key_here")
-], port=8080)
-
-bot.start()
-

How to connect callback

-

Connecting a callback server to your group is very simple! First, go to the group settings in the "API usage", section, then go to the callback section

-
- - -
-

Then, we need to select the events that we will process in the settings

-
- -
-

Great! Now we can start connecting our server. To begin with, we will copy what the bot should return when confirming and its secret key and paste it into the code of our program, as well as throw it into the ID object of our group.

-
-
-

Starting the server, in the address column, fill in the address of our server in the format crthst::rpl/group_id

-
-

Click confirm. Congratulations, the bot is connected!

-
- -''' -} - -for lang in docs_info: - docs_info[lang] = docs_info[lang].replace('crthst::rpl', hostname) \ No newline at end of file diff --git a/vk_callback/vk_callback_data/tools.py b/vk_callback/vk_callback_data/tools.py deleted file mode 100644 index 35f7434..0000000 --- a/vk_callback/vk_callback_data/tools.py +++ /dev/null @@ -1,7 +0,0 @@ -def repl_to_dict(args): - # print(args) - data = dict() - for arg in args: - data[arg] = args[arg] - # print(data) - return data \ No newline at end of file