[Ciotoflow] Il Pastebbinnatore

Üzenet törlése

Válasz az üzenetre
Szerző: ono-sendai
Dátum:  
Címzett: Flussi di ciotia.
Tárgy: [Ciotoflow] Il Pastebbinnatore
Stanchi del solito internet?! Nemmeno il navigatorefolle(tm) riesce a
sollazzarvi nei piovosi pomeriggi di maggio!? Provate il PASTEBBINNATORE il mio
primo (penoso) script python! Su pastebin.com passa parecchia roba e molte cose
potrebbero essere interessanti tipo:

account premium a bigna!!

http://pastebin.com/Wx32K39v

Email e rispettive password

http://pastebin.com/btGEUBrc

Bot in Perl (per la felicita' di Natale!)

http://pastebin.com/bRgrT1qa

Strani racconti fetish in FRANGESE!!!

http://pastebin.com/WxKyWAqh

Sessioni irc SOVIETICHE

http://pastebin.com/aE3KqUi8

Insomma,mai piu' noia!!Grazie al pastebbinnatore vi si aprira' un mondo!!!
Fra le cose da implementare meglio nel codice c'e' la pulizia dalla fezza html!
Poi bho' per il resto modificatelo e condividetelo e fatemi sapere cosa ve ne pare!
Certo cercando inurl:pastebin.com su google potreste avere lo stesso risultato
ma: 1) i paste possono scadere anche dopo 10 minuti,2) pastebin potrebbe
rimuovere materiale scomodo [1],3) il pastebinnatore te li salva casomai
esplodesse L'INTERNET 4) e che cazzo ormai lo script l'avevo quasi finito!!

[1]
http://www.technolog.msnbc.msn.com/technology/technolog/pastebin-delete-plans-could-include-anonymous-data-640806
#!/usr/bin/env python3

# Require httplib2 e python3
#
# Licence:
# Pastebinnatore is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#

from multiprocessing import Process , Queue
import sys
import re
import os
import urllib.request
import time
import html.parser

def salva(nome,contenuto):
    salvato = open(DIR+nome+"_paste","w")
    #pulisco dalla fezza html
    contenuto = html.parser.HTMLParser().unescape(contenuto).replace('return catchTab(this,event)">',"\n")
    salvato.write(str(contenuto))
    salvato.close()
    print("\n Salvato: "+DIR+nome+'_paste_\n')


if len(sys.argv) < 2:
    print("""\n\t PASTEBINNATORE\n Utilizzo: pastebinnatore.py argomenti da cercare \n ES: pastebinnatore.py 
        parola1 parola2 "parola3 con spazi" parola4\n opzioni: -s \t salva tutte le pagine senza cercare nulla\n""")
    sys.exit(1)

    
if os.listdir(os.getcwd()).count('pastebin') == 0:
    os.mkdir('pastebin')


DIR=os.getcwd()+"/pastebin/"
url='http://www.pastebin.com/'
daVisitare = []
visitati=[]
codaDavisitare = Queue()

def pastebinna(codaDavisitare):
    while True :
        if codaDavisitare.empty():
            time.sleep(15)
            print('\n proc: '+str(os.getpid())+' coda vuota sleeppo 15 secondi')
        else:
            visito=codaDavisitare.get()
            data = urllib.request.urlopen(url+visito).read()
            stringa = str(data.decode('utf8','ignore'))
            fine_testo=stringa.find('</textarea>')
            inizio_testo=stringa.find('return catchTab(this,event)">')
            contenuto = stringa[inizio_testo:fine_testo]
            if sys.argv[1] != '-s':
                for i in sys.argv[1:]:    #cerca se sono presenti i termini passati come argomenti
                    if contenuto.lower().find(str(i).lower()) != -1:
                        salva(i+'_'+visito[1:],contenuto)
            else:
                print("\n MODALITA' SALVO TUTTO\n")
                salva('_'+visito[1:],contenuto)
            print('\n proc:'+str(os.getpid())+'\t analizzo: '+visito+'\n'+'Ancora in coda: '
                +str(codaDavisitare.qsize())+'\n')


if __name__ == '__main__':
    for i in range(3): # Non usare piu' di 3 processi pena ban di pastebin!
        p = Process(target=pastebinna , args=(codaDavisitare,))
        p.start()

    
    print("\n----------> PaSteBbiNnAtOrE <----------\n"+
          "           in chiuriti we trust \n")    
    while True:    
        print("\n Scarico Pagina Iniziale\n")
        data = urllib.request.urlopen('http://pastebin.com/archive').read()
        stringa = str(data.decode('utf8','ignore'))
        fine_url=stringa.find('<div style="margin:10px 0;clear:left"></div>')
        inizio_url=stringa.find('<th scope="col" align="right">Syntax</th>')
        linea= stringa[inizio_url:fine_url]
        daVisitare=re.findall('"([^">]........)"',linea)
        for indirizzo in daVisitare:
            if indirizzo not in visitati:
                codaDavisitare.put(indirizzo)
                visitati.append(indirizzo)
        print("\n Scaricata pagina iniziale\n")
        time.sleep(300)