[Python] Renomeeserver - Tool zum automatischen bewerten

Dieses Thema im Forum "Projekte / Codes" wurde erstellt von Beginner35, 18. März 2007 .

  1. 18. März 2007
    Renomeeserver - Tool zum automatischen bewerten

    RenomeeServer

    Beschreibung:

    Der RenomeeServer ist ein Webserver der bei euch lokal läuft ihr könnt ihn standardmäßig über die Url http://localhost:8000/ aufrufen, dort könnt ihr dann Posts oder User eintragen die bewertet werden sollen.

    Installation:

    Möglichkeit a:
    Ihr müsst den Python-Interpreter installiert haben damit ihr das Programm ausfüren könnt, den bekommt ihr hier. Dann nur noch die Datei renomeeserver.py starten und los gehts. Das ist die Resourcensparendere Methode.

    Möglichkeit b:
    Wenn ihr keine Lust habt den Python-Interpreter zu installieren könnt ihr euch den RenomeeServer als exe herungerladen dazu ladet ihr euch einfach das rar und entpackt alles dann startet ihr renomeeserver.exe.

    Benutzung:

    Ihr müsst zuerst euren RR-Benutzernamen und das Passwort in renomserv.conf eintragen.
    Dann startet ihr den RenomeeServer und könnt ihn per localhost:8000 erreichen, den Port könnt ihr auch in renomserv.conf ändern. Benutzer könnt ihr nur alle 30 Sekunden bewertet weil ein Post von dem User gesucht wird und man ja nur alle 30 Sekunden suchen darf.

    Sinn des ganzen:

    Ich hab mir gedacht das damit das bewerten leichter wird, natürlich ist es immernoch umständlich alle postids in das Feld zu kopieren. Allerdings können upper einfach einen Link in ihren Biete-Thread hinzufügen auf den ihr nur noch klicken müsst und schon alle bewertet habt, natürlich muss der RenomeeServer dafür bei euch laufen.
    So ein link müsste so aussehen: http://localhost:8000/?u=&p=post1+post2+post3

    Integration in die Opera-Suche:

    Damit müsst ihr nur noch in der Opera-Adresszeile
    Code:
    bw post1 post2
    eingeben und schon wird bewertet.
    Damit das geht fügt folgendes in der search.ini(C:\Dokumente und Einstellungen\user\Anwendungsdaten\Opera\Opera\profile) hinzu:
    Code:
    [Search Engine <Nummer>]
    Name=RenomeeServer
    URL=http://localhost:8000/?u=&p=%s
    Query=
    Key=bw
    Is post=0
    Has endseparator=0
    Encoding=utf-8
    Search Type=0
    Verbtext=17063
    Position=-1
    Nameid=0
    <Nummer> muss eins höher sein als der letzte eintrag in der search.ini

    Download:

    RAR mit .exe
    Source
    BeispielKonfiguration(Bei der RAR schon dabei
    Source:
    Spoiler
    Code:
    #!/usr/bin/env python
    # -*- coding: iso-8859-15 -*-
    #beginner At frubar DoT net
    #Codet by Beginner
    #Published under the GPLv2
    #irc://irc.xchannel.org/kolaleech
    
    import BaseHTTPServer
    try:
     from rrboardlib import rrboard
    except:
     print "Lade das Modul RRBoardLib nach"
     from urllib import urlretrieve
     try:
     urlretrieve("http://xxxbeginner35xxx.xx.funpic.de/data/scripte/rrboardlib.py", "rrboardlib.py")
     from rrboardlib import rrboard
     except:
     print "Konnte RRBoardLib nicht laden, beende"
     exit(1)
    
    
    f = file("renomserv.conf", "r")
    confstr = f.read()
    f.close()
    opts = confstr.split(";")
    for o in opts:
     if "passwort=" in o:
     passwd = o.split("=")[1]
     elif "username=" in o:
     usernam = o.split("=")[1]
     elif "port=" in o:
     port = int(o.split("=")[1])
    del opts, f
    rrb = rrboard()
    if rrb.login(usernam, passwd) == True:
     print "Erfolgreich auf RR eingeloggt"
    class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
    
     def do_GET(self):
     if self.path == "/":
     self.index()
     elif "/?" in self.path:
     param = self.path.split("?")[1].split("&")
     for p in param:
     if "p=" in p:
     postids = p.replace("p=", "").split("+")
     elif "u=" in p:
     userids = p.replace("u=", "").split("+")
     if userids == [""] and postids == [""]:
     self.index()
     else:
     if userids == [""] or postids == [""]:
     if userids == [""]:
     self.rep(posts = postids)
     if postids == [""]:
     self.rep(users = userids)
     else:
     self.rep(postids, userids)
     
     
     
     def index(self):
     #self.send_header("Content-type", "text/html")
     #self.end_headers()
     self.wfile.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n\n<head>\n <title>Renommee Server</title>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n</head>\n<body>\n<h1>Renomee-Server</h1>\n<br>\n<br>\n<FORM action=\"/\" method=\"GET\">\n \t<h2>User die bewertet werden sollen (Es wird dann einfach ein Post gesucht und der bewertet):</h2>\n\t<textarea name=\"u\" cols=\"50\" rows=\"3\"></textarea>\n\t<p>Usernamen bitte mit einem Leerzeichen trennen</p>\n\t<br>\n\t<br>\n\t<h2>Posts die bewertet werden sollen:</h2>\n\t<textarea name=\"p\" cols=\"50\" rows=\"3\"></textarea>\n\t<p>Posts bitte mit einem Leerzeichen trennen</p>\n\t<INPUT type=\"submit\" value=\"LOS!!\">\n</FORM>\n\n</body>\n</html>\n")
     
     def rep(self, posts="", users=""):
     #print "Bewerte folgende Posts: " + str(posts)
     #print "Bewerte folgende User: " + str(users)
     self.wfile.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n\n<head>\n <title>Renommee Server</title>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n</head>\n<body>\n<center><h1>Renomee-Server - Bewertet</h1>\n<br>\n<br>\n")
     if posts:
     self.wfile.write("<table border=\"1\" rules=\"groups\">\n <thead>\n <tr>\n <th>Post</th>\n <th>bewertet?</th>\n </tr>\n </thead>\n <tbody>\n")
     for p in posts:
     if p:
     if rrb.reppost(p) == True:
     self.wfile.write("<tr>\n<td>" + str(p) + "</td>\n<td style=\"color:green\">bewertet</td>\n</tr>\n")
     else:
     self.wfile.write("<tr>\n<td>" + str(p) + "</td>\n<td style=\"color:red\">nicht bewertet</td>\n</tr>\n")
     self.wfile.write("</tbody>\n</table>\n")
     if users:
     self.wfile.write("<table border=\"1\" rules=\"groups\">\n <thead>\n <tr>\n <th>User</th>\n <th>bewertet?</th>\n </tr>\n </thead>\n <tbody>\n")
     for u in users:
     if u:
     if rrb.reppost(user=u) == True:
     self.wfile.write("<tr>\n<td>" + str(u) + "</td>\n<td style=\"color:green\">bewertet</td>\n</tr>\n")
     else:
     self.wfile.write("<tr>\n<td>" + str(u) + "</td>\n<td style=\"color:red\">nicht bewertet</td>\n</tr>\n")
     self.wfile.write("</tbody>\n</table></center>\n")
     self.wfile.write("</body>\n</html>")
    
    
    
    
    httpd = BaseHTTPServer.HTTPServer(("", port), Handler)
    print "serving at port", port
    httpd.serve_forever()


    Dann mal viel Spaß beim testen und postet was ihr von der Idee/Umsetzung haltet und was man verbessern könnte.

    Beginner
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.