Bei dieser Herausforderung berechnen Sie, wie hoch Ihre Reputation wäre, wenn die Reputationsbeschränkung bei PPCG nicht vorhanden wäre.
Jeder kann auf die Rohdaten für Reputationsänderungen unter folgender Adresse zugreifen: codegolf.stackexchange.com/reputation . Die Rohdaten folgen einem solchen Setup (dies sind die ersten Zeilen meiner Version der Seite).
total votes: 2955
-- bonuses (100)
2 37663 (10)
-- 2014-09-11 rep +110 = 111
2 41751 (10)
-- 2014-11-23 rep +10 = 121
2 41751 (10)
2 41751 (10)
-- 2014-11-24 rep +20 = 141
Die erste Zeile ist für diese Herausforderung irrelevant (sie zeigt die Gesamtzahl der Stimmen, die Sie für alle Ihre Antworten und Fragen erhalten haben). Die zweite Zeile zeigt den "Assoziationsbonus". Wenn Sie den Bonus nicht haben, wird diese Linie überhaupt nicht da sein.
Nach diesen beiden Zeilen (oder einer, wenn kein Bonus) erhalten Sie eine Liste der Reputationsänderungen pro Frage sowie eine Zusammenfassung aller an jedem Tag gewonnenen / verlorenen Repräsentanten. Sie erhalten auch eine Liste der Gesamtreputation, die Sie am Ende dieses Tages haben. In dieser Liste werden nur Tage angezeigt, an denen sich Ihr Ruf geändert hat.
Am Anfang jeder Zeile befinden sich Bezeichner (mit Ausnahme der täglichen Zusammenfassungszeilen). Dies sind die folgenden möglichen Gründe für Reputationsänderungen:
1 : Accept (+2 if you accept, +15 if your answer is accepted)
2 : Upvote (+5 for question, +10 for answer)
3 : Downvote (-1 if you downvote answer, -2 if you get downvoted)
4 : Offensive (-100)
8 : Give bounty
9 : Receive bounty
12: Spam (-100)
16: Approved edit (+2)
Die fehlenden Nummern ( 5,6,7,10,11,13,14,15
haben keinen Einfluss auf den Ruf).
Ihre Herausforderung besteht darin, die Reputation zu berechnen, die Sie ohne die Reputationsobergrenze hätten.
So machst du das:
Speichern Sie den Inhalt von codegolf.stackexchange.com/reputation
lokal als einfachen Text oder an einem anderen Ort Ihrer Wahl (dies liegt daran, dass Sie angemeldet sein müssen, um auf die Informationen zugreifen zu können). Sie können die Daten auch direkt von der Website abrufen, obwohl ich davon ausgehe, dass dies viel länger dauern wird.
Fassen Sie alle positiven und negativen Reputationsänderungen zusammen. Stimmen, die (aufgrund der Wiederholungszahl) nicht zu einer Änderung der Reputation führen, werden wie folgt angezeigt (beachten Sie die eckigen Klammern anstelle der regulären Klammern):
2 106125 [0]
2 106125 [0]
3 106125 [-2]
2 106088 [2]
2 106125 [0]
2 106088 [0]
Sie müssen den Mitarbeiter angeben, den Sie erhalten hätten, wenn die Kappe nicht vorhanden gewesen wäre.
Post - Nummer 106125
ist eine Frage , während 106088
ist eine Antwort . Wie Sie sehen, können Sie den Unterschied zwischen beiden nicht nur anhand der in der Tabelle angegebenen Daten feststellen. Sie müssen daher auf die Website ( codegolf.stackexchange.com
) zugreifen , um zu überprüfen, ob es sich bei einem Beitrag um eine Frage oder eine Antwort handelt. Sie können dafür auch die API verwenden.
Regeln:
- Jeder muss in der Lage sein, Ihr Skript auszuführen.
- Sie müssen alle unterschiedlichen Reputationsänderungstypen angeben, auch wenn Sie diese nicht selbst kennen.
- Der Code muss funktionieren, auch wenn Sie den Assoziationsbonus nicht erhalten haben (die Zeile wird nicht dort sein, wenn Sie nicht erhalten haben)
- Sie dürfen nicht-freie Sprachen (Mathematica, MATLAB usw.) verwenden, solange andere mit einer Lizenz den Code ausführen können.
- Sie müssen die Rohdaten nicht angeben, da jeder Ihren Code auf seiner eigenen Version der Seite testen kann (es wird interessant sein, wenn Sie die Ergebnisse teilen, aber das ist optional).
- Sie können die API verwenden oder direkt auf die Website zugreifen. URL-Shortener sind nicht erlaubt.
- Wenn es andere Möglichkeiten gibt, den Repräsentanten zu finden, den Sie ohne die Repräsentantenkappe hätten, können Sie sie nicht verwenden. Sie müssen die Daten von der genannten Seite verwenden.
Beachten Sie, dass Posts, bei denen es sich um Antworten handelt, eine andere Erweiterung der URL erhalten:
/codegolf/106088 // Answer: Notice the end of the url
/codegolf/106079/detect-ms-windows/106088#106088
/codegolf/106079/ // Question: Notice the end of the url
/codegolf/106079/detect-ms-windows
Ausgabe:
Die Ausgabe sollte sein:
Rep w cap: 15440
Rep w/o cap: 16202
Das Format ist optional, [15440,16202]
wird akzeptiert. Rep w cap
kann direkt aus der Zeile entnommen werden: ** total rep 15440 :)
am unteren Rand der Seite.
Das ist Code-Golf, also gewinnt der kürzeste Code in Byte.
quelle
Antworten:
Perl 5 (mit Locke), 209 + 1 (-n Flag) = 210 Bytes
Missbraucht die Tatsache, dass die URL für eine Antwort eine enthält
#
. Kann-s
nachher eine Flagge hinzufügen,curl
wenn Sie nicht möchten, dass stderr mit Fortschrittsbalken überflutet wird. Ich würde mich über jemanden freuen, der es auf einer Seite mit mehr Ruf getestet hat. Ich kann nicht sicher sein, dass ich nichts verpasst habe.Meins ist 421 und würde übrigens 451 sein.
quelle
perl -nE 'code' < filename
. Möglicherweise müssen Sie unter Windows andere Zitate und Escape-Vorgänge ausführen, da ich mit der Umgebung dort nicht sehr vertraut bin.https://
wenn Sie den Pass --L
Flag zu locken, so dass sie die 301 - Weiterleitung folgen/codegolf//a/$2
eher die 301-Umleitung als die Seite selbst.Search pattern not terminated at -e line 1.
wenn ich das versuche. Ich füge einfach den gesamten Code mit dem ein, was du in comment (perl -nE ..
) geschrieben hast , während die Datei im aktuellen Arbeitsverzeichnis gespeichert ist. Irgendeine Idee, warum das sein könnte?