Wenn Gemeinschaft eine Person gewesen wäre

17

Nun, die Community ist nur ein Bot. Aber was wäre, wenn es eine Person gewesen wäre?

Ihre Aufgabe ist es, die Reputation der Community zu ermitteln, wenn ihr für die vorgenommenen Bearbeitungen eine Reputation verliehen worden wäre (einfach 2 * Bearbeitungen).

Dies sollte für jede Site funktionieren, aber wir würden PP & CG für diese Frage in Betracht ziehen.

Verwenden Sie eine beliebige Sprache, auch data.stackexchange würde funktionieren.

Da es sich um Codegolf handelt, gewinnt der kleinste Code so viel Reputation, wie ich gewonnen habe + 15 (durch Kopfgeld lasse ich 101 für mich selbst: P).

BEARBEITEN: Betrachten Sie alle Arten von Bearbeitungen, die das Ansehen erhöhen.

registrierter Nutzer
quelle
3
Was ist, wenn du Downvotes hast? Wirst du uns auch einen negativen Ruf geben?
User12205
2
Sollen wir auch nur vorgeschlagene oder normale Bearbeitungen zählen (die die Wiederholung NICHT erhöhen)? Was ist mit Tag-Wiki-Änderungen?
Türklinke
Warum hast du auf die Beta-Version der Geschichte verlinkt?
TheDoctor
@thedoctor mein Fehler.Bitte ändern Sie es auf PPCG-Link.Ich habe derzeit keinen Zugriff auf meinen Computer.
Registrierter Benutzer
1
Müssen wir den Cutoff berücksichtigen? Es gibt ein Maximum an Ansehen, das auf diese Weise erlangt werden kann. Ich vermute, dass die Community auf vielen Websites dieses Maximum erreicht hätte.
Tim Seguine

Antworten:

4

Ich weiß, dass URL-Shortenger schummeln, aber da alle anderen sie verwenden, sollte ich das wahrscheinlich tun.

Bash, with bcund URL Shortener:67 62 60 58 54

bc<<<`wget x.co/4Ccg3 -qO-|grep -oP "(?<='>)[0-9]+"`*2

Lädt die relevante Seite auf STDOUT herunter und sucht '>anschließend nach einer Folge von Ziffern. Dabei wird die Tatsache missbraucht, dass im Quellcode der Seite nur selten einfache Anführungszeichen verwendet werden. Tatsächlich '>kommt die Sequenz zweimal vor und nur einmal, gefolgt von einer Zahl, der Anzahl der Bearbeitungen. Unter Verwendung des Perl-Lookbehinds ist der '>nicht wirklich im Match enthalten.

Die -oOption grepbewirkt, dass nur die übereinstimmende Zeichenfolge ausgegeben wird und nicht die gesamte Zeile, in der sie enthalten ist (in h1derselben Zeile befindet sich eine , und das möchte ich nicht).

Die resultierende Anzahl von Bearbeitungen wird mit verkettet *2und an gesendet bc.

@ 11684 hat darauf hingewiesen, dass Sie mit 1 Ruf beginnen, der Fragesteller dies jedoch eindeutig vergessen hat, sodass dies in der Frage nicht erwähnt wird (es würde bestehende Antworten sprengen, wenn dies der Fall wäre). Wenn Sie dies hinzufügen möchten, fügen Sie einfach +1am Ende des Codes 2 Zeichen hinzu.

SHELF , 36 - zählt nicht, da die Sprache nach der Frage erstellt wurde

, `W x.co/4Ccg3|t "(?<='>)[0-9]+"`*2

SHELF ist eine Golfversion von Bash, genau wie PYG für Python.


quelle
Ich werde deinen verkürzten Link stehlen, da er x.cokürzer ist als goo.gl. :)
11684
@ 11684 es macht mir nichts aus, ich habe es Synthetica bereits gegeben
URL-Kürzung, clever;)
2

Python ( 191 181 170 126 117)

@ Henrik: Gute Idee, einen URL-Shortener zu verwenden. Es macht dir nichts aus, wenn ich dir nur einen leihe, oder? Nur zum Auftakt, das wird wahrscheinlich sehr, sehr schnell besiegt;)

i=__import__("urllib2").urlopen("http://x.co/4Ccg3").read();j=i[i.index("<span class='count")+20:];print 2*int(j[:2])

Sucht nach dem <span class='count'>, der den Bekanntheitsgrad des Bots enthält.

ɐɔıɐɔuʇǝɥʇs
quelle
Sie sollten in der Lage sein, communityvon der URL zu entfernen .
Geobits
1
Äh, das funktioniert nicht. Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ''
user80551
@ace Irgendwo ist etwas durcheinander gekommen, ich weiß nicht warum. Sowieso: es funktioniert jetzt.
ɐɔıɐɔuʇǝɥʇs
kürzer: x.co/4Ccg3
2

JavaScript (EcmaScript 6 + jQuery) - 80 Zeichen

$.get('/users/-1/?tab=activity&sort=revisions',r=>alert($('.count',r).text()*2))

Führen Sie es in der JavaScript-Konsole auf einer beliebigen StackExchange-Seite aus (obwohl die Pfeilfunktionen von ECMAScript 6 derzeit nur in FireFox unterstützt werden, muss dies in diesem Browser erfolgen, bis die anderen aufholen) und erhalten Sie die Community-Reputation in dieser Domain. Wenn Sie es also ausführen, http://codegolf.stackexchange.comwird die Reputation der Code Golf Community (derzeit 118) und http://academia.stackexchange.com/die Reputation dieser Site (derzeit 162) wiederhergestellt.

Welche hoffentlich beantwortet die

Dies sollte für jede Site funktionieren

bisschen von der Frage.

MT0
quelle
3
Ich denke, mit jQuery sollte 83532 zum Endergebnis
hinzugefügt werden
1

JavaScript (mit jQuery) - 141

$.get('http://codegolf.stackexchange.com/users/-1/?tab=activity&sort=revisions',function(o){alert($('<a>').html(o).find('.count').html()*2)})

BEARBEITEN : Funktioniert nur, wenn es von einer StackExchange-Seite ausgeführt wird oder wenn dieselbe Ursprungsrichtlinie deaktiviert ist .

Wenn dieselbe Ursprungsrichtlinie deaktiviert ist, kann sie auf 96 Zeichen verkürzt werden:

$.get('http://tinyurl.com/pfmsq8w',function(o){alert($('<a>').html(o).find('.count').html()*2)})
Michael M.
quelle
1

Ich habe den Ruf angegeben, mit dem Sie beginnen!

jQuery, 76

$a=$("body");$a.load("//x.co/4Ccg3 .count",function(){$a.text($a.text()*2+1)

auf jeder Seite mit jQuery und angefordert von http.

jQuery funktioniert nur auf der entsprechenden Seite - 23

$(".count").text()*2+1;

Die Seite, auf der es läuft, ist http://goo.gl/JOqzpF .

11684
quelle
0

PowerShell (143)

Mein erstes PowerShell-Skript! Zählt die Anzahl der Revisionen und multipliziert sie mit zwei (sehr inspiriert von der Python-Antwort von @ Synthetica).

$s=(New-Object Net.WebClient).DownloadString("http://tinyurl.com/pfmsq8w");(0+($s.Substring($s.IndexOf("s='cou")+10,8) -replace "[^\d]",""))*2
Henrik
quelle