From 59da1d493cfac3fb3f1d7301c8fb2682b3fb79fc Mon Sep 17 00:00:00 2001 From: danamir Date: Wed, 17 Apr 2019 08:36:20 +0300 Subject: [PATCH] initial commit --- Dockerfile | 8 ++++++ docker-compose.yml | 5 ++++ readme.md | 1 + vk_bot.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 readme.md create mode 100644 vk_bot.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e215283 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.7 +MAINTAINER Alex Danamir +RUN mkdir /home/savebot +COPY . /home/savebot +WORKDIR /home/savebot +RUN python -m pip install vk_api +RUN python -m pip install pdfkit +RUN python -m pip install pyvirtualdisplay diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..28c7baa --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,5 @@ +version: '3' + +services: + savebot: + build: . diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a2a51a7 --- /dev/null +++ b/readme.md @@ -0,0 +1 @@ +#Бот для социальной сети Vk.com который умеет сохранять веб-страницы из полученных ссылок в pdf. \ No newline at end of file diff --git a/vk_bot.py b/vk_bot.py new file mode 100644 index 0000000..30f6c5c --- /dev/null +++ b/vk_bot.py @@ -0,0 +1,68 @@ +import vk_api +from vk_api import VkUpload +from vk_api.longpoll import VkLongPoll, VkEventType +import requests +from random import randint +import os +from pyvirtualdisplay import Display +import pdfkit + + +class VkBot(): + + def getRandomId(self): + self.randId = randint(1000, 2 ** 32) + return self.randId + + + def startBot(self): + self.session = requests.Session() + + self.login, self.password = '+79167941799', 'cjghjvfn1q2w3e' + vk_session = vk_api.VkApi(self.login, self.password) + try: + vk_session.auth(token_only=True) + except vk_api.AuthError as error_msg: + print(error_msg) + return + + vk_session = vk_api.VkApi(token='c74eed28be099a7295df99b6dfd84e3b0c7cf2bf1e04e96c21fac10d77200a2f7e0a866b9914784c4fa6b') + vk = vk_session.get_api() + + + longpoll = VkLongPoll(vk_session) + + for event in longpoll.listen(): + + if event.type == VkEventType.MESSAGE_NEW: + if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: + vk.messages.send( + user_id=event.user_id, + random_id=self.getRandomId(), + peer_id = event.user_id, + user_ids = event.user_id, + message="Привет! Я пока маленький ботёнок и рад тебя видеть! Я много чего не умею, но я быстро учусь!" + ) + def saveLinks(self, url): + display = Display(visible=0, size=(800, 600)) + display.start() + root_directory = 'save' + save_directory = 'save/pdf' + os.chdir(save_directory) + + if str(url).find('https') > -1: + url_name = url[8:].replace('/', '_') + else: + url_name = url[7:].replace('/', '_') + + file_name = url_name + ".pdf" + + # file = os.path.join(save_directory, file_name) + pdfkit.from_url(url, file_name) + print("OK") + os.chdir(root_directory) + + +if __name__ == '__main__': + bot = VkBot() + bot.startBot() \ No newline at end of file