LINUX.ORG.RU

lor-get на питоне в одну строку и 1024 байта

 ,


1

1

Сабж:

from urllib.request import urlopen as u
from bs4 import BeautifulSoup as b
from base64 import b64decode as e
import requests as r
import http.cookiejar as y
g=10000000
c="cookies.txt"
t=y.MozillaCookieJar()
while 1 :(lambda _,k:k(e(b"aHR0cDovL3d3dy5saW51eC5vcmcucnUvYWRkLmpzcG5vaW5mb2ZhbHNlZ3JvdXA4NDA0dGl0bGVtc2d0YWdzZHJhZnRjc3JmP2dyb3VwPTg0MDRpbnB1dG5hbWV2YWx1ZURFVlBPTllXQVNIRVJF").decode("ascii"),(lambda _:t)(t.load(c))) if int(_(e(b"aHR0cDovL3d3dy5saW51eC5vcmcucnUvdHJhY2tlci9jbGFzc21lc3NhZ2UtdGFibGVocmVmYXJ0aWNsZW1zZ2lk").decode("ascii")))==g-1 else 0)(lambda _:b(u(_[0:23]+b(u(_[0:32]).read()).find(_[45:50],{_[32:37]:_[37:50]}).findAll(_[34])[1][_[50:54]]).read()).findAll(_[54:61],{_[32:37]:_[61:64]})[-1][_[64:66]].split(_[44])[1],lambda _,k:r.post(_[0:31],data={_[31:37]:_[37:42],_[42:47]:_[47:51],_[51:56]:str(g),_[56:59]:"http://www.linux.org.ru/forum/talks/"+str(g),_[59:63]:"",_[63:68]:"",_[68:72]:b(r.get(_[0:31]+_[72:83],cookies=k).text).find(_[83:88],{_[88:92]:_[68:72]})[_[92:97]]},cookies=k))
В переменной g нужный вам гет, в файле cookies.txt печеньки в формате FF. Пост появляется в черновиках.
Писал для десятимиллионного гета, но лично запустить не мог, т.к. валялся пьяный под одной из ёлок. Запустил на сервере с пингом до лора 2 мс, сделал последние несколько правок, которые не успел проверить, они и подвели :( Пользуйтесь.

_,k:k(e(b"aHR0cDovL3d3dy5saW51eC5vcmcucnUvYWRkLmpzcG5vaW5mb2ZhbHNlZ3JvdXA4NDA0dGl0bGVtc2d0YWdzZHJhZnRjc3JmP2dyb3VwPTg0MDRpbnB1dG5hbWV2YWx1ZURFVlBPTllXQVNIRVJF").decode("ascii"),(lambda _:t)(t.load(c))) if int(_(e(b"aHR0cDovL3d3dy5saW51eC5vcmcucnUvdHJhY2tlci9jbGFzc21lc3NhZ2UtdGFibGVocmVmYXJ0aWNsZW1zZ2lk").decode("ascii")))==g-1 else 0)(lambda _:b(u(_[0:23]+b(u(_[0:32]).read()).find(_[45:50],{_[32:37]:_[37:50]}).findAll(_[34])[1][_[50:54]]).read()).findAll(_[54:61],{_[32:37]:_[61:64]})[-1][_[64:66]].split(_[44])[1],lambda _,k:r.post(_[0:31],data={_[31:37]:_[37:42],_[42:47]:_[47:51],_[51:56]:str(g),_[56:59]:"http://www.linux.org.ru/forum/talks/"+str(g),_[59:63]:"",_[63:68]:"",_[68:72]:b(r.get(_[0:31]+_[72:83],cookies=k).text).find(_[83:88],{_[88:92]:_[68:72]})[_[92:97]]},cookies=k))

Дай угадаю, это надо запустить от рута?

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

Посмотри base64-строки, если такой недоверчивый. Там просто упакованы адреса.

devpony ()
Ответ на: комментарий от devpony

Да этот код легче с нуля написать, чем пытаться распарсить и понять.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

aHR0cDovL3d3dy5saW51eC5vcmcucnUvYWRkLmpzcG5vaW5mb2ZhbHNlZ3JvdXA4NDA0dGl0bGVtc2d0YWdzZHJhZnRjc3JmP2dyb3VwPTg0MDRpbnB1dG5hbWV2YWx1ZURFVlBPTllXQVNIRVJF

а может это ссылка на «привет, исден»?

fish_ka ()
Ответ на: комментарий от vurdalak
aHR0cDovL3d3dy5saW51eC5vcmcucnUvYWRkLmpzcG5vaW5mb2ZhbHNlZ3JvdXA4NDA0dGl0bGVtc2d0YWdzZHJhZnRjc3JmP2dyb3VwPTg0MDRpbnB1dG5hbWV2YWx1ZURFVlBPTllXQVNIRVJF

==

http://www.linux.org.ru/add.jspnoinfofalsegroup8404titlemsgtagsdraftcsrf?group=8404inputnamevalueDEVPONYWASHERE
aHR0cDovL3d3dy5saW51eC5vcmcucnUvdHJhY2tlci9jbGFzc21lc3NhZ2UtdGFibGVocmVmYXJ0aWNsZW1zZ2lk
==
http://www.linux.org.ru/tracker/classmessage-tablehrefarticlemsgid

devpony ()
Ответ на: комментарий от devpony

Я тащемта говорил про код, а не конкретно эту строку. Не знаю, каким обфускатором ты по нему прошёлся, но запускать я это не рискну.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

Не знаю, каким обфускатором ты по нему прошёлся

Обижаешь, всё вручную.

devpony ()

import requests as r

Заменяй r в коде на __import__(«requests») и делай всё в настоящую одну строчку, а не в это позёрство.

aedeph_ ★★ ()

Кто ж так на питоне пишет. Создатели pep8 плачут кровавыми слезами.

Siado ★★★★★ ()
Ответ на: комментарий от flareguner

Слабо на перле?

Да ты на код посмотри! Какая, нафиг, разница?
Эта хрень вообще как код прохо идентифицируется.

Stahl ★★☆ ()

Что это и зачем это нужно?

TDrive ★★★★★ ()
Ответ на: комментарий от TDrive

Приблуда преднозначенная для автоматического создания поста с красивым (в общем-то любым заданным) id на ЛОРе, написанная извращённым образом что-бы весить не более 1кб.

MrClon ★★★★★ ()
Ответ на: комментарий от kot_otbelivatel

И не должна ничего печатать. Печеньки рядом положил?

devpony ()
Ответ на: комментарий от Stahl

Да ладно. Немного магии с указателями на функции и слайсингом.

flareguner ()
Ответ на: комментарий от devpony

Вот и выросло поколение.

помогите, пожалуйста исправить такую программу:
cat «test... test... test...» | perl -e '$?? <skip>
- не печатает

sin_a ★★★★★ ()

Да я и здесь могу сказать - Питон сосёт!

CYB3R ★★★★★ ()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  getlor.py
#
# http://www.linux.org.ru/forum/talks/10069358?lastmod=1390061311824


from urllib2 import urlopen
from BeautifulSoup import BeautifulSoup
from cookielib import MozillaCookieJar
import requests


class GetTheLOR():
    def __init__(self, getnum=1000000, cookiefile="cookies.txt", pw=''):
        self.getnum = getnum
        self.cookiefile = cookiefile
        self.cookiejar = MozillaCookieJar()
        self.passwd = pw
        self.lorurl = u'http://www.linux.org.ru'

    def get_last_lorpost_url():
        '''
        return url like that:
        u'http://www.linux.org.ru/forum/general/10069764?lastmod=1390065794661'
        '''

        tracker_page = urlopen(self.lorurl+'/tracker/').read()

        last_post_url = BeautifulSoup(tracker_page) \
            .find(u'table', {u'class':u'message-table'}) \
            .findAll(u'a')[1][u'href']

        return lor + last_post_url

    def get_last_msgid(url):
        '''
        return last message id string
        '''
        page = urlopen(url).read()
        lastid=BeautifulSoup(page) \
            .findAll(u'article',{u'class':u'msg'})[-1][u'id'] \
            .split(u'-')[1]
        return lastid

    def get_the_lor():
        '''
        post the lorget message with autoban
        '''
        cookies = self.cookiejar.load(self.cookiefile)

        url = self.lorurl + '/add.jsp'
        csrf = BeautifulSoup(requests.get(url+u'?group=8404' \
            ,cookies=cookies).text) \
            .find(u'input',{u'name':u'csrf'})[u'value']

        data={u'noinfo':u'false',
            u'group':u'8404',
            u'title':str(self.getnum),
            u'msg':u"%s/forum/talks/%s\n\n%s" % (self.lorurl,
                self.getnum, self.passwd),
            u'tags':"",
            u'draft':"",
            u'csrf':csrf
        }
        return requests.post(url, data, cookies=cookies)

    def check_and_make_get():
        last_msgid = self.get_last_msgid()
        if int(last_msgid) == self.getnum-1:
            return self.get_the_lor()
        else:
            return 0

Привел к более читабельному виду, добавил автозабан.

З.ы. код не тестил, возможны баги.

Siado ★★★★★ ()
Последнее исправление: Siado (всего исправлений: 1)

что на твоем юзерпике делает аватарка моно?

der_looser ★★ ()
Ответ на: комментарий от der_looser

Да, чтобы ставить эту аватарку нужно победить моно, катапа, жобэ, так дойти до макскома, победить его и только потом ставить эту аву.

Siado ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.