Just my blog
Blog about everything, mostly about tech stuff I made. Here is the list of stuff I'm using at my blog. Feel free to ask me about implementations.
- Mobaxterm SSH RDP FTP...
- Thunderbird Email client
- Filezilla FTP client/server
- Nirsoft Win utils
- Sysinternals Win utils
- Pi-Hole AD block by DNS
- NUT UPS manager
- Rpi MON Raspberry monitoring
- Free CAD 3D modelling
- Free Commander Far-like filemanager
- Bitwarden Password manager
- Django web framework
- celery multi-tasking
- celery-beat Celery + Django
- celery-results Celery + Django
- Pillow Python image lib
- wsgi mod Apache + Python
- requests best in WEB requests
- openpyxl make Excell docs
- p4python Perforce + Python
- paramiko SSH + Python
- pyvmomi ESXi Vcenter + Python
I'm using these libraries so you can ask me about them.
vk execute + args + python + requests
Продолжаю закреплять выученное своим горьким опытом и методом тыка по теме vk execute и python, наконец мои рученьки-загребученьки добрались до последнего оплота и просто приятного и некогда непонятного метода, и также к хранению процедур в приложении! Ура. В прошлом посте я рассказывал как передать строку с vk script сразу таки прям по воздуху, сырую и некрасивую, сегодня мне покорился вариант "хранимые процедуры" который позволяет тело скрипта хранить в приложении вк, а передавать по "воздуху" только необходимые и меняющиеся аргументы: id группы, id поста и так далее. Ближе к делу:
- каждая переменная, которая будет записываться переданным аргументом должна иметь такой вид: Args.var_name
var comments = API.wall.getComments( {"owner_id":(Args.owner_id), "post_id":(Args.post_id), "need_likes":"1", "offset":"0", "count":"100", "sort":"asc", "preview_length":"1", "extended":"0", "v":"5.27"}); var comments_cnt = comments.count; comments = comments.items; var offset_comments = 100; while (offset_comments < comments_cnt) {comments = comments + API.wall.getComments( {"owner_id":(Args.owner_id), "post_id":(Args.post_id), "need_likes":"1", "offset":(offset_comments), "count":"100", "sort":"asc", "preview_length":"1", "extended":"0", "v":"5.27"} ).items; offset_comments = offset_comments + 100;}; return comments;
на своей стороне достаточно собрать запрос такого вида:
r = requests.post('https://api.vk.com/method/execute.wall_getComments?owner_id='+owner_id+'&post_id='+post_id+'&access_token='+token)
Это вариант для python там выше каждая переменная из этой строки назначена соответственно.
Далее чисто отсебятина:
Вот и все епта, куча времени уходит на то, чтобы переварить долбанные хабровские посты и прочие форумы говнокодеров, когда достаточно просто написать пару строк примера, и все станет ясно. Надеюсь мой пример сэкономит вам время. Почему лучше "хранить процедуры"?
- не нужно каждый раз писать пачку VK Script для каждого частного случая;
- хранимый код может быть использован с любыми аргументами, все запросы просто будут менять аргументы в зав. от группы-цели;
- не нужно конвертировать сырой запрос с VK Script через энкодилки, чтобы передать это через HTTP;
- в хранимых процедурах есть примитивный IDE который позволяет быстрее отдебажить код, если в нем закрался шлак;
- это просто офигенно, потому что код остается чистым и понятным - уходят аргументы - возвращаются массивы, что может быть лучше?