Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # coding=utf-8
- """
- Muokkasin psykoosibotti vähän ja tää jakaa nyt random langoille tää ääniä satunnaisessa.
- Sit se postaa n.minuutin välein hiekkalaatikkoon uuden langan nii tienaa vähän aktiivisuuspisteitä.
- tarvii /img/ kansion juureen ja sinne random kuvia numerojärjestyksessä, että toi osaa postata niitä. Sit pitää createThread functiossa muistaa laittaa randintti oikeisiin lukemiin,
- että ohjelma tietää monta kuvaa kansiossa on. (En oo jaksanu tehdä tästä hienompaa, vaikka ei hankala ois :D)
- """
- import dryscrape, re
- from bs4 import BeautifulSoup
- import getpass
- import random
- from random import randint
- import sys
- import os
- import datetime
- import time
- import threading
- reload(sys)
- sys.setdefaultencoding('utf-8')
- url="https://ylilauta.org/satunnainen/"
- from requests import get
- times = raw_input("Monta kertaa käydään lankoja läpi: ")
- username = raw_input("Käyttäjätunnus:")
- passw = getpass.getpass('Salasana:' )
- session = dryscrape.Session()
- session.set_error_tolerant(True)
- thisGiven = 0
- usedThreads =[]
- threadsMade = 0
- timesDone = 0
- global makeNewThread
- makeNewThread = True
- def update():
- threading.Timer(1.0, update).start()
- curTime = str(datetime.datetime.time(datetime.datetime.now()))[6:-7]
- #print curTime
- global makeNewThread
- if timesDone >= times:
- compose = session.at_xpath('//*[contains(text(), "Kirjaudu ulos")]')
- compose.click()
- sys.exit(0)
- if curTime == "50":
- print "make new thread enabled"
- makeNewThread = True
- def createThread(threadNumbers):
- try:
- session.visit("https://ylilauta.org/hiekkalaatikko")
- fil = session.at_xpath('//*[@name="file"]')
- randFile = os.path.dirname(os.path.realpath(__file__))+"/img/"+str(randint(0,1064))+".jpg"
- if os.path.isfile(randFile):
- print randFile
- fil.set(randFile)
- else:
- randFile = randFile[:-3]+"png"
- print randFile
- fil.set(randFile)
- teksti = session.at_xpath('//*[@name="msg"]')
- randomTekstit = ["testailua juu","testailen vielki moro","testii","testi","tetsaan sori","tesst","teest","testisisis","testiä","anteeksi testi"]
- teksti.set(random.choice(randomTekstit))
- token = session.at_xpath('//*[@name="submit"]')
- token.click()
- print "thread done"
- threadNumbers=threadNumbers+1
- return threadNumbers
- except Exception, e:
- print "error in thread making: "+str(e)
- #log in to ylis xD
- try:
- session.visit(url)
- name = session.at_xpath('//*[@name="username"]')
- name.set(username)
- password = session.at_xpath('//*[@name="password"]')
- password.set(passw)
- name.form().submit()
- response = session.body()
- soup = BeautifulSoup(response)
- print soup.findAll(text=re.compile('Kirjautuneena'))
- update()
- except:
- print 'Error in page load when loggin in'
- #-------------------------------------------------------
- for x in range(0, int(times)):
- try:
- #50/50 to go to frontpage or some other
- if randint(0,10) > 5:
- session.visit("https://ylilauta.org/satunnainen-"+str(randint(2,3)))
- else:
- session.visit(url)
- response = session.body()
- soup = BeautifulSoup(response)
- # check for all threads
- threads = soup.findAll("div", {"class": "thread"})
- #get random post
- randomid = randint(0, len(threads)-1)
- thread = threads[randomid]
- post = thread.find("div", {"class":"op_post"})
- author = post.find("a", {"class":"postnumber"}).get_text()
- authorModified = re.sub("\D", "", author)
- if authorModified in usedThreads:
- raise ValueError("Tää :D has been made in this htrööd :D")
- #OPEN THE POST
- #convert the link to right format
- linkToPost = post.find("a", {"class":"postsubject"})
- linkToPost = str(linkToPost)[str(linkToPost).find('href'):]
- splitattu = linkToPost.split()
- linkToPost = splitattu[0][6:]
- if "span" in linkToPost:
- linkToPost = linkToPost[:-7]
- else:
- linkToPost = linkToPost[:-2]
- #visit the post
- session.visit("https://ylilauta.org"+linkToPost)
- response = session.body()
- soup = BeautifulSoup(response)
- print "new thread: "+authorModified
- buttons = session.xpath('//a[contains(@title, "Tää :D")]')
- print "Tää :Ds to give: "+str(len(buttons))
- print "going to take about: "+str(float(len(buttons)*0.6))+"seconds"
- for thisButton in buttons:
- thisButton.click();
- thisGiven=thisGiven+1
- waitTime = random.uniform(0.5, 1)
- time.sleep(waitTime)
- print "tää :D given: "+str(thisGiven)+" times.."
- usedThreads.append(authorModified)
- timesDone=timesDone+1
- pisteet = soup.findAll(text=re.compile('Aktiivisuuspisteet'))
- print pisteet[0]
- if makeNewThread == True:
- t = createThread(threadsMade)
- threadsMade = t
- makeNewThread = False
- print "threads made: "+str(threadsMade)
- #print str(makeNewThread)
- time.sleep(2)
- except Exception, e:
- print "error : "+str(e)
- time.sleep(15)
- session.visit(url)
- response = session.body()
- soup = BeautifulSoup(response)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement