Gdyby społeczność byłaby osobą

17

Dobrze społeczność jest tylko bot. Ale co, jeśli byłby to człowiek?

Twoim zadaniem jest ustalenie, jaka byłaby reputacja społeczności, gdyby zyskał reputację wprowadzanych zmian. (Po prostu 2 * zmiany)

Powinno to działać w przypadku każdej witryny, ale w przypadku tego pytania rozważymy PP&CG.

Użyj dowolnego języka, nawet data.stackexchange będzie działać.

Ponieważ jest to kod golfowy, najmniejszy kod wygrywa tyle samo reputacji, co zyskuję + 15 (dzięki nagrodom zostawię 101 dla siebie: P).

EDYCJA: weź pod uwagę wszelkiego rodzaju zmiany, które zwiększają reputację.

zarejestrowany użytkownik
źródło
3
Co jeśli masz głosy negatywne? Czy dasz nam również negatywną reputację?
user12205
2
Czy powinniśmy liczyć tylko sugerowane lub zwykłe zmiany (które NIE zwiększają liczby powtórzeń)? Co z tagami edycji wiki?
Klamka
Dlaczego link do historii beta?
TheDoctor
@thedoctor mój błąd. Zmień go na link PPCG. Obecnie nie mam dostępu do mojego komputera.
Zarejestrowany użytkownik
1
Czy musimy rozważyć granicę? W ten sposób można uzyskać maksymalną reputację. Domyślam się, że w wielu witrynach społeczność osiągnęłaby to maksimum.
Tim Seguine,

Odpowiedzi:

4

Wiem, że skracacze URL są oszukiwane, ale ponieważ wszyscy inni ich używają, prawdopodobnie powinienem.

Bash, bcskracacz URL i:67 62 60 58 54

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

Pobiera odpowiednią stronę do STDOUT, a następnie wyszukuje '>ciąg znaków, po którym następuje ciąg cyfr - błędnie wykorzystuje to fakt, że w kodzie źródłowym strony pojedyncze cudzysłowy są rzadko używane; w rzeczywistości sekwencja '>występuje dwa razy, a tylko raz następuje liczba, która jest liczbą edycji. Używając wyglądu w stylu Perla, '>nie jest on tak naprawdę uwzględniony w dopasowaniu.

Ta -oopcja powoduje, że grepwypisuje tylko dopasowany ciąg, a nie całą linię zawierającą go (jest h1w tym samym wierszu i nie chcę tego).

Wynikowa liczba zmian jest łączona *2i wysyłana do bc.

@ 11684 wskazał, że zaczynasz od 1 reputacji, ale pytający wyraźnie o tym zapomniał, więc nie jest wspomniany w pytaniu (jeśli tak, to łamałby istniejące odpowiedzi). Jeśli chcesz to dodać, po prostu wstaw +1na końcu kodu, dodając 2 znaki.

PÓŁKA , 36 - nie liczy się, ponieważ język został utworzony po pytaniu

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

SHELF to golfowa wersja Bash, podobnie jak PYG dla Pythona.


źródło
Kradnę twój skrócony link, ponieważ x.cojest on krótszy niż goo.gl. :)
11684
@ 11684 nie mam nic przeciwko, już dałem go Synthetice
Skracanie adresów URL, sprytne;)
2

Python ( 191 181 170 126 117)

@Henrik: Dobry pomysł, aby użyć skracacza adresów URL. Nie przejmuj się, jeśli tylko pożyczę twoje, prawda? Tylko po to, prawdopodobnie zostanie to pobite bardzo, bardzo szybko;)

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

Wyszukuje informacje <span class='count'>o reputacji bota.

.ıʇǝɥʇuʎs
źródło
Powinieneś być w stanie usunąć communityz adresu URL.
Geobits
1
To nie działa. Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ''
user80551
@ace Coś gdzieś się pojawiło, nie wiem dlaczego. W każdym razie: teraz działa.
3ıʇǝɥʇuʎs
więcej krótszy: x.co/4Ccg3
2

JavaScript (EcmaScript 6 + jQuery) - 80 znaków

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

Uruchom go w konsoli JavaScript na dowolnej stronie StackExchange (chociaż funkcje strzałek ECMAScript 6 są obecnie obsługiwane tylko w FireFox, więc będzie trzeba to robić w tej przeglądarce, dopóki inni nie nadrobią zaległości) i uzyska reputację Wspólnoty w tej domenie. Więc uruchom tohttp://codegolf.stackexchange.com zyska reputację Code Golf Community (obecnie 118), a uruchomienie go http://academia.stackexchange.com/zyska reputację z tej strony (obecnie 162).

Które mam nadzieję odpowiada

To powinno działać na każdej stronie

trochę pytania.

MT0
źródło
3
Czuję, że użycie jQuery powinno dodać 83532 do końcowego wyniku
JoshWillik
1

JavaScript (z jQuery) - 141

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

EDYCJA : działa tylko, jeśli zostanie wykonana z dowolnej strony StackExchange ... lub jeśli ta sama zasada pochodzenia jest wyłączona .

Jeśli ta sama zasada pochodzenia jest wyłączona, można ją skrócić do 96 znaków:

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

Podałem 1 reputację, od której zaczynasz!

jQuery, 76

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

na dowolnej stronie z jQuery i zażądany przez http.

jQuery, działa tylko na odpowiedniej stronie - 23

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

Strona, na której działa, to http://goo.gl/JOqzpF .

11684
źródło
0

PowerShell (143)

Mój pierwszy skrypt PowerShell! Liczy liczbę poprawek i pomnożenie jej przez dwa (bardzo zainspirowane odpowiedzią @ Synthetica na Python).

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