[ create a new paste ] login | about

Link: http://codepad.org/NudIYwEv    [ raw code | fork ]

Python, pasted on Dec 8:
# -*- coding: utf-8 -*-

import sys
import requests
import mimetypes
import random
import hashlib
import json

def get_captcha():
    request = requests.get("http://macbook/api?act=remove_captcha")
    return json.loads(request.text)

def get_content_type(filename):
    return mimetypes.guess_type(filename)[0] or 'application/octet-stream'

def multipart_build_query(fields, boundary):
    data = []
    for item in fields:
        key, value = item.split(': ')
        data.append('--' + boundary + '\r\n')
        if key.find('image') != -1:
            filename = value
            data.append('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, value))
            data.append('Content-Type: %s\r\n\r\n' % get_content_type(filename))
            if len(value) > 0:
                data.append(open(filename).read())
            data.append('\r\n')
        else:
            data.append('Content-Disposition: form-data; name="%s"\r\n\r\n' % key)
            data.append(value + '\r\n')

    data.append('--' + boundary + '--\r\n\r\n')

    return ''.join(data)

def send(proxy):

    captcha = get_captcha()
    proxies = {"http": proxy}

    try:
        captcha_id = str(captcha["response"]["captcha_id"])
        captcha_value = str(captcha["response"]["captcha_code"])
    except:
        print captcha["error"]
        return

    images = ["1.jpg", "", "", ""]

    boundary = '----WebKitFormBoundary' + hashlib.sha1(str(random.randint(0, sys.maxint))).hexdigest()[:16]
    headers = {'Content-Type': 'multipart/form-data; boundary=' + boundary}
    fields = ['task: post', 'board: b', 'thread: 0', 'usercode: ', 'code: ',
              'captcha_type: recaptcha', 'email: ', 'submit: Отправить', 'comment: ' + 'ololo!',
              'image1: ' + images[0], 'image2: ' + images[1], 'image3: ' + images[2], 'image4: ' + images[3],
              '2chaptcha_id: ' + captcha_id, '2chaptcha_value: ' + captcha_value]


    data = multipart_build_query(fields, boundary)

    try:
        request = requests.post("http://2ch.pm/makaba/posting.fcgi", data = data, headers = headers, proxies = proxies, timeout = 3)
    except:
        print "request error %s" % proxy
        return

    try:
        response = json.loads(request.text)

        if response['Error'] is not None:
            print response['Reason']
        else:
            print "Тред создан: http://2ch.pm/b/res/%s.html" % response['Target']
    except:
        print "json decode error"

proxy_list = open('proxy.txt')

for proxy in proxy_list.readlines():
    pr = proxy.replace("\r\n", '')
    send(pr)


Create a new paste based on this one


Comments: