24 juli 2009

Autobanal

Nu har jag suttit uppe hela natten för att skriva ett program som kan sköta twittandet, uppdaterandet av fb-statusar och diverse mikrobloggeri helt automatiskt. Programmet ger sken av att användaren lever ett i högsta grad vanligt liv och rapporterar kring detta med en lätt sympatisökande och torr ton.

Här nedan följer grundprogrammets databas av fraser. Text inom hakparantes är variabler som skapar variation genom slumpmässiga sökningar på internet.

äter lunch på [snabbmatskedja]
jobbar över
borde gå och lägga mig men har fastnat i [TV-serie]
är lite besviken på [musikorkester]s nya
storhandlar
är trött på den svenska [årstid]en
bloggar
vill ha tips på en bra TV-serie
lagar mat
går och lägger sig
har handlat över sina tillgångar på [webbutik]
borde ta en dusch
väntar på tåget till [svensk stad]
funderar på att gå och träna
undrar om någon vill ta en öl, eller två, på fredag?
är upprörd över [orättvisa]
kan inte sova

Arbetet med att fylla databasen med de återkommande fraserna är inte färdigt än och jag tar med glädje emot förslag. Samtidigt är det inte eftersträvansvärt att ha en för varierad databas i grunden då jag planerar ett antal tilläggsprogram som publicerar mer specifika fraser och därmed ger sken av att användaren har ett särintresse. De tilläggsprogram jag påbörjat arbetet med i första skedet är Fotbollsnörden, Musikexperten och ett inte ännu namngivet tillägg som publicerar gnäll kring att man inte sitter och skriver på sin diktsamling/roman/artikel/hemtenta/uppsats. Fotbollsnörden hämtar mycket av sin information från TV-tablåns sportsidor. Däremot har jag inte löst hur Musikexperten automatiskt kan lösa quiz efter quiz om band och göra detta med resultat strax över medel.

2 kommentarer:

Gunnar sa...

Tips, använd programmet MegaHAL, genom att mata den med fraser skapar den nya. Mata in alla dina vänners statusuppdateringar, etc, så kommer den utifrån dessa ska nya pseudobegripliga statusrader.

Anonym sa...

Ball ide :) Mitt förslag i python.

# -*- coding: cp1252 -*-
import base64, httplib, urllib, random, time

USERNAME = "" # Enter username and password here
PASSWORD = ""
INTERVAL = 3600

def update_status(status):
authentication = { "Authorization": "Basic %s"
% base64.encodestring("%s:%s" % (USERNAME, PASSWORD)).strip() }
connection = httplib.HTTPConnection("twitter.com", 80)

connection.request("POST", "/statuses/update.xml",
urllib.urlencode({ "status": status }), authentication)
response = connection.getresponse()
return response.status

def generate_status():
s = ["äter lunch på [snabbmatskedja]",
"jobbar över",
"borde gå och lägga mig men har fastnat i [TV-serie]",
"är lite besviken på [musikorkester]s nya",
"storhandlar",
"är trött på den svenska [årstid]en",
"bloggar",
"vill ha tips på en bra TV-serie",
"lagar mat",
"går och lägger sig",
"har handlat över sina tillgångar på [webbutik]",
"borde ta en dusch",
"väntar på tåget till [svensk stad]",
"funderar på att gå och träna",
"undrar om någon vill ta en öl, eller två, på fredag?",
"är upprörd över [orättvisa]",
"kan inte sova"]
return random.choice(s)

while True:
s = generate_status()
print "Updating status to '"+s+"'"
if update_status(s) != 200:
print "Failed!"
print "Update done"

time_to_sleep = random.gauss(INTERVAL, INTERVAL/2)
print "Sleeping for "+str(time_to_sleep)+" seconds."
time.sleep(time_to_sleep)