Пост с именинниками Вконтакте

Публикация поста с именинниками Вконтакте: Старый скриптец, который я использовал около года назад для выборки именинников и публикации поста с ними на стену сообществ Вконтакте. Выкладываю в публичный доступ, так как морально он устарел и код в нем выглядит ужасно, но подходит чисто для образовательных целей и “авось кому пригодится” мне бы он помог на первых порах изучения, может быть … Сам код можете смотреть здесь: В ближайшие дни, недели, месяцы я буду выкладывать все эти прошлые поделки, по мере того, как полностью перепишу их на новый манер, сейчас у меня основная задача – полностью унифицировать эти отрывки кода и сделать из них полноценную систему управления и автоматизации, поэтому, эти вот отрывки сами по себе уже никакой ценности не несутShort Read more…

Что значит код почистил:

Никаких тебе задержек, выполнение функций занимает менее секунды для краткой выборки, 3 секунды на выборку в цикле! 27-07-2016 – 18:37:53 Comments deleter: del_comments_regular – Will delete comment from non-member user(s): [266810306] 27-07-2016 – 18:37:53 Comments deleter: del_comments_regular – INFO: – Bot is finishing this iteration! Time spent: 3.870000123977661 27-07-2016 – 18:37:53 Comments deleter: =========================================================================================== 27-07-2016 – 18:38:15 Comments deleter: delete_comments_older – Will delete comment from non-member user(s): [1183178, 266810306] 27-07-2016 – 18:38:15 Comments deleter: delete_comments_older – INFO: – Bot is finishing this iteration! Time spent: 3.3279998302459717 27-07-2016 – 18:38:15 Comments deleter: =========================================================================================== 27-07-2016 – 18:39:07 Comments deleter: del_comments_regular – Will delete comment from non-member user(s): [266810306] 27-07-2016 – 18:39:07 Comments deleter: del_comments_regular – INFO: – Bot is finishing this iteration!Short Read more…

vk execute wall get comments automation

Как использовать vk execute для получения всех комментариев со всех постов? Как и обещал, пришло время выложить исходники (исподники) скриптов, которые я использую для собирания комментов с постов в группе. Суть в следующем, у вас есть группа, в которой есть посты, в которых есть комментарии. Вначале вы отбираете ТОЛЬКО те посты, в которых комментов больше нуля и формируете их них список, разделенный запятыми, это важно, так как метод вк не позволяет отправлять сразу список, поэтому мы его “обманем”. Порядок действий такой: получить все посты (wall.get) -> python отобрать посты, где комментарии > 0; -> python соорудить array из id постов, перевести его в строку: ‘11111,2222,3333,4444‘; -> python передать строку в execute-> python собрать с каждого поста комментарии; -> vk executeShort Read more…

Дилемма идиота

Что такое “дилемма идиота” для меня? Дилемма идиота это: привести ли весь свой говнокод в порядок и поставить его на новый модуль с хорошим, сложным и очень гибким планировщиком с БД и шлюхами, или перенести на временный легковесный модуль без БД за 5 минут, а пока все будет работать на легком модуле – плавно разбираться в более сложном но навороченном, или лучше вообще ничего не трогать и ну его нах? Inspired by: Легковесный планировщик: https://pypi.python.org/pypi/schedule/ Планировщик с блекджеком и шлюхами: https://pypi.python.org/pypi/APScheduler/ Read more…

Python schedule how to

Задачка на вечер: Дано: задание, которое нужно выполнять в заданные промежутки времени, модуль Python schedule. Задача: запускать одну и ту же задачу с разными значениями offset раз в 10 сек, так, чтобы 0ffset=119 запускался в 10 сек от начала каждой минуты, offset=219 на 20й секунде каждой минуты и так далее. Все что пока смог сделать – заставить выполняться задачу каждую 10ю секунду, НО! это грозит тем, что каждые 10 сек в очередь добавляется каждая след. задача, так что может выполняться все куда чаще, чем раз в 10 сек. Есть идея – сделать задержку в 10 сек после каждого добавления задачи в очередь, тогда может получиться задержка в 20 сек, потом выполнение подряд нескольких задач, и снова 20 сек задержки. СломалShort Read more…

Авто удаление комментариев Вконтакте

Автоматически удалять комментарии оставленные НЕ подписчиков группы? Модуль, который проверяет каждый оставленный комментарий в первых 10 и 50-100 постах на предмет того, оставлен ли он участником группы. Логика действий простая: получить все комментарии с айди (словарь вида: айди_коммента, айди_автора, время_коммента) авторов каждого комментария, проверить есть ли айди автора комментария в списке участников группы, если нет – составить список значений из списка словарей выше, далее запустить луп, в котором удалять каждый комментарий ил списка словарей комментариев, которые оставлены не участниками группы. Данная логика не рассматривает использование vk_execute, но в моем модуле он используется. Возможно, я расскажу именно о vk_script когда-нибудь позднее, когда закончу разработку всех мыслимых модулей, которые запланировал внедрить. На основе: http://www.trianglesis.org.ua/vk-execute-args-python-requests Последнее время работаю над системой, которая выполняет рутинноеShort Read more…

Atlassian Confluence REST API Making request and keep the session (Eng)

In this topic I’ll show you how to make session to Atlassian Confluence with python requests and keep it in memory. Based on: http://docs.python-requests.org/en/master/ https://docs.python.org/2.7/library/json.html https://confluence.atlassian.com/confkb/confluence-url-list-317949394.html https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples For someone who found this topic by “search machines”, there is some more detailed how-to – probably can help you: https://www.guru99.com/restful-web-services.html Python requests module: At first you should know and understand how requests works, basically. Check how your confluence works: Next – you should know the point, where is your Confluence server make authorisation, in my situation it lies here (this is looks cozy, but this is our company’s way. In your situation it can be simpler, as documented in links above): https://docs.YOURCOMPANYMAME.com/docs/dashboard.action?os_username=configipedia_service_account&os_password=PASSWORD Then you compose a request like: import json import requestsShort Read more…

Atlassian Confluence REST API Logic structure (Eng)

Read this article after you know how to make REST API request to Atlassian Confluence! This topic will show you some part of internal scheme of Confluence API and hierarchy. Based on: https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples https://confluence.atlassian.com/doc/confluence-wiki-markup-251003035.html https://docs.atlassian.com/atlassian-confluence/REST/latest/ So, looking on the Confluence docs all this scheme looks like well-structured logical system, but it has some difficulties, just as for me. Before you POST of GET something will be better if you make a probing GET request to see the whole structure in your organisation. In this example you will get those arguments: # Confluence stats space_page = ‘625685389’ space_root_page = ‘625685397’ space_id = ‘624689178’ space_key = ‘~configipedia_service_account’ space_name = ‘DocBot+space’ child_page_1 = ‘625685424’ child_page_2 = ‘625685428’ confPedia_root = ‘https://docs.YOURCOMPANYMAME.com’ confPediaUser = ‘~configipedia_service_account’Short Read more…

Atlassian Confluence REST API (Eng)

How to work with REST API Confluence. Rus What is this topic about? API structure in Atlassian Confluence. Objects, files, relations etc. How to compose API request in Atlassian Confluence? How to open session and hold it on – ! Making headers with requests and – json ! Send a file or file content with wiki markup on Confluence – ! Interpret server answers. What is the difference between “representation“:”storage” and “markup” in Atlassian Confluence? Macro and markup About “Atlassian Confluence” you can read here. https://www.atlassian.com/software/confluence https://wikipedia.org/wiki/Confluence Who need this? For those, who wants to automate documentation stage of DEV. For those, who wants to understand how does python requests working? For my own – to not forger this lesson. When IShort Read more…

Python Run External Command And Get Output On Screen or In Variable

Отседова: http://www.cyberciti.biz/faq/python-run-external-command-and-get-output/ The basic syntax is: import subprocess subprocess.call(“command-name-here”) subprocess.call([“/path/to/command”, “arg1”, “-arg2”]) Run ping command to send ICMP ECHO_REQUEST packets to www.cyberciti.biz: #!/usr/bin/python import subprocess subprocess.call([“ping”, “-c 2”, “www.cyberciti.biz”]) Свой вариант: C:\Python34>python.exe Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32 Type “help”, “copyright”, “credits” or “license” for more information. >>> import subprocess >>> subprocess.call([“ping”, “-t”, “8.8.8.8”]) Pinging 8.8.8.8 with 32 bytes of data: Reply from 8.8.8.8: bytes=32 time=49ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Reply from 8.8.8.8: bytes=32 time=43ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Reply from 8.8.8.8: bytes=32 time=42ms TTL=43 Ping statistics forShort Read more…