Si la comunidad hubiera sido una persona

17

Bueno, la comunidad es solo un bot. Pero, ¿y si hubiera sido una persona?

Su tarea es encontrar cuál podría haber sido la reputación de la comunidad si se le hubiera dado reputación por las ediciones que realiza (simplemente 2 * ediciones)

Esto debería funcionar para cualquier sitio, pero consideraríamos PP&CG para esta pregunta.

Use cualquier idioma, incluso data.stackexchange funcionaría.

Como es el código de golf, el código más pequeño gana la reputación que gane + 15 (a través de la recompensa, dejaré 101 para mí: P).

EDITAR: considere todo tipo de ediciones que aumenten la reputación.

usuario registrado
fuente
3
¿Qué pasa si tienes votos negativos? ¿Nos darás una reputación negativa también?
user12205
2
¿Deberíamos contar solo las ediciones sugeridas o las ediciones normales (que NO aumentan la repetición) también? ¿Qué pasa con las ediciones wiki de etiquetas?
Pomo de la puerta
¿Por qué vinculaste a la historia beta?
TheDoctor
@thedoctor, mi error. Por favor cámbielo al enlace PPCG. Actualmente no tengo acceso a mi computadora.
Usuario registrado
1
¿Tenemos que considerar el límite? Hay un máximo de reputación que se puede ganar de esta manera. Supongo que en muchos sitios, la comunidad habría alcanzado este máximo.
Tim Seguine

Respuestas:

4

Sé que los acortadores de URL son engañosos, pero como todos los demás los están usando, probablemente debería hacerlo.

Bash, con bcy acortador de URL:67 62 60 58 54

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

Descarga la página relevante a STDOUT, luego busca '>seguido de una secuencia de dígitos: hace un mal uso del hecho de que en el código fuente de la página, las comillas simples rara vez se usan; de hecho, la secuencia '>ocurre dos veces, y solo una vez seguida de un número, que es el número de ediciones. Usando el estilo de Perl, '>no se incluye realmente en el partido.

La -oopción hace que la grepsalida solo sea la cadena coincidente en lugar de la línea completa que la contiene (hay una h1en la misma línea y no quiero eso).

El número resultante de ediciones se concatena con *2y se envía a bc.

@ 11684 señaló que comienzas con 1 reputación, pero el autor de la pregunta claramente lo olvidó, por lo que no se menciona en la pregunta (si lo fuera, rompería las respuestas existentes). Si desea agregar eso, simplemente colóquelo +1al final del código, agregando 2 caracteres.

ESTANTE , 36 - no cuenta ya que el idioma fue creado después de la pregunta

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

SHELF es una versión golfizada de Bash, como PYG es para Python.


fuente
Voy a robar tu enlace acortado, ya que x.coes más corto que goo.gl. :)
11684
@ 11684 No me importa, ya se lo di a Synthetica
2

Pitón ( 191 181 170 126 117)

@ Henrik: Buena idea usar un acortador de URL. No importa si tomo prestado el tuyo, ¿verdad? Solo para comenzar, esto probablemente será golpeado muy, muy rápido;)

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

Busca el <span class='count'>que contiene la cantidad de reputación que tiene el bot.

ɐɔıʇǝɥʇuʎs
fuente
Debería poder eliminar communityde la url.
Geobits
1
Er, esto no funciona. Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ''
user80551
@ace Algo se metió en alguna parte, sin saber por qué. De todos modos: funciona ahora.
Aprıʇǝɥʇuʎs
más shorterer: x.co/4Ccg3
2

JavaScript (EcmaScript 6 + jQuery) - 80 caracteres

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

Ejecútelo en la consola de JavaScript en cualquier página de StackExchange (aunque las funciones de flecha de ECMAScript 6 solo son compatibles con FireFox en este momento, por lo que tendrá que hacerse en ese navegador hasta que los demás se pongan al día) y obtendrá la reputación de la Comunidad en ese dominio. Por lo tanto, ejecutarlo http://codegolf.stackexchange.comobtendrá la reputación de Code Golf Community (actualmente 118) y ejecutarlo http://academia.stackexchange.com/obtendría la reputación de ese sitio (actualmente 162).

Que con suerte responde a

Esto debería funcionar para cualquier sitio

poco de la pregunta

MT0
fuente
3
Siento que usar jQuery debería agregar 83532 al puntaje final
JoshWillik
1

JavaScript (con jQuery) - 141

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

EDITAR : solo funciona si se ejecuta desde cualquier página de StackExchange ... o si la misma política de origen está desactivada .

Si la misma política de origen está deshabilitada, se puede acortar a 96 caracteres:

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

¡He incluido la 1 reputación con la que comienzas!

jQuery, 76

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

en cualquier página con jQuery y solicitado por http.

jQuery, solo funciona en la página relevante - 23

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

La página en la que se ejecuta es http://goo.gl/JOqzpF .

11684
fuente
0

PowerShell (143)

¡Mi primer script de PowerShell! Cuenta el número de revisiones y lo multiplica por dos (muy inspirado por la respuesta de Python de @ Synthetica).

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