W tym wyzwaniu obliczysz, jaka byłaby Twoja reputacja, gdyby limit PPPG nie istniał.
Każdy może uzyskać dostęp do rawdata w celu zmiany reputacji na adres: codegolf.stackexchange.com/reputation . Surowe dane są zgodne z taką konfiguracją (są to pierwsze wiersze mojej wersji strony.
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
Pierwszy wiersz nie ma znaczenia dla tego wyzwania (pokazuje całkowitą liczbę głosów, które otrzymałeś na wszystkie odpowiedzi i pytania). Druga linia pokazuje „Bonus stowarzyszenia”. Jeśli nie masz premii, ta linia w ogóle jej nie będzie.
Po tych dwóch (lub jednym, jeśli nie ma bonusu) wierszach, pojawi się lista zmian reputacji dla każdego pytania, wraz z podsumowaniem wszystkich powtórzeń uzyskanych / utraconych każdego dnia. Pod koniec tego dnia otrzymasz także listę całkowitej reputacji. Tylko dni, w których zmieniła się Twoja reputacja, są wyświetlane na tej liście.
Na początku każdego wiersza znajdują się identyfikatory (oprócz codziennych wierszy podsumowania). Są to następujące potencjalne przyczyny zmiany reputacji:
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)
Brakujące liczby ( 5,6,7,10,11,13,14,15
nie wpływają na reputację).
Twoim wyzwaniem jest obliczenie reputacji, którą miałbyś, gdyby nie ograniczenie reputacji.
Jak to zrobisz:
Zapisz treść codegolf.stackexchange.com/reputation
jako zwykły tekst lokalnie lub w innym wybranym przez siebie miejscu (dzieje się tak, ponieważ musisz być zalogowany, aby uzyskać dostęp do informacji). Możesz pobrać dane ze strony internetowej, jeśli wolisz, ale zakładam, że będzie to znacznie dłużej.
Podsumuj wszystkie pozytywne i negatywne zmiany reputacji. Głosy, które nie powodują zmiany reputacji (z powodu ograniczenia liczby powtórzeń) są wyświetlane w następujący sposób (zwróć uwagę na nawiasy kwadratowe zamiast zwykłych nawiasów):
2 106125 [0]
2 106125 [0]
3 106125 [-2]
2 106088 [2]
2 106125 [0]
2 106088 [0]
Musisz dołączyć przedstawiciela, który byś otrzymał, gdyby nie ograniczenie.
Numer post 106125
to pytanie , podczas gdy 106088
jest to odpowiedź . Jak widać, nie ma sposobu, aby określić różnicę między nimi, używając tylko danych podanych w tabeli. Musisz zatem uzyskać dostęp do strony internetowej ( codegolf.stackexchange.com
), aby sprawdzić, czy post jest pytaniem lub odpowiedzią. Możesz również użyć interfejsu API do tego.
Zasady:
- Każdy musi mieć możliwość uruchomienia skryptu, aby:
- Musisz uwzględnić wszystkie rodzaje zmian reputacji, nawet jeśli sam tego nie spotkałeś.
- Kod musi działać, nawet jeśli nie otrzymałeś premii Stowarzyszenia (linia nie będzie tam, jeśli nie masz)
- Możesz używać niewolnych języków (Mathematica, MATLAB itp.), O ile inne osoby posiadające licencję mogą uruchamiać kod.
- Nie musisz podawać nieprzetworzonych danych, ponieważ każdy może przetestować kod na własnej wersji strony (ciekawe będzie, jeśli udostępnisz wyniki, ale jest to opcjonalne).
- Możesz użyć interfejsu API lub uzyskać bezpośredni dostęp do strony internetowej. skracacze adresów URL są niedozwolone.
- Jeśli istnieją inne sposoby znalezienia przedstawiciela bez rep cap, nie możesz go użyć. Musisz użyć danych ze wspomnianej strony.
Pamiętaj, że posty będące odpowiedziami mają inne rozszerzenie do adresu URL:
/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
Wynik:
Dane wyjściowe powinny być:
Rep w cap: 15440
Rep w/o cap: 16202
Format jest opcjonalny, [15440,16202]
jest akceptowany. Rep w cap
można pobrać bezpośrednio z wiersza: ** total rep 15440 :)
u dołu strony.
To jest golf golfowy, więc wygrywa najkrótszy kod w bajcie.
źródło
Odpowiedzi:
Perl 5 (z zawinięciem), 209 + 1 (flaga -n) = 210 bajtów
Nadużywa faktu, że ma adres URL odpowiedzi
#
. Można dodać-s
flagę później,curl
jeśli nie lubisz, gdy stderr jest zalewany paskami postępu. Byłbym wdzięczny za testowanie strony o bardziej zróżnicowanej reputacji - nie jestem pewien, że niczego nie przegapiłem.Nawiasem mówiąc, mój ma 421, a 451.
źródło
perl -nE 'code' < filename
. Być może będziesz musiał zrobić kilka różnych cytatów i ucieczki od rzeczy w systemie Windows, nie znam się zbyt dobrze na środowisku.https://
jeśli podasz-L
flagę do zwijania się, pozwalając jej na podążanie za przekierowaniem 301/codegolf//a/$2
samej strony.Search pattern not terminated at -e line 1.
kiedy próbuję tego. Po prostu wklejam cały kod, używając tego, co napisałeś w komentarzu (perl -nE ..
), jednocześnie zapisując plik w bieżącym katalogu roboczym. Wiesz, dlaczego to może być?