Si la communauté aurait été une personne

17

Eh bien, la communauté n'est qu'un bot. Et si c'était une personne?

Votre tâche consiste à déterminer quelle aurait pu être la réputation de la communauté si elle avait été reconnue pour les modifications qu'elle effectue (simplement 2 * modifications).

Cela devrait fonctionner pour n'importe quel site, mais nous envisagerions PP&CG pour cette question.

Utilisez n'importe quelle langue, même data.stackexchange fonctionnerait.

Comme il s'agit de code golf, le plus petit code gagne autant de réputation que je gagne + 15 (via bounty, je vais laisser 101 pour moi: P).

EDIT: considérez toutes sortes de modifications qui augmentent la réputation.

Utilisateur enregistré
la source
3
Et si vous avez des downvotes? Voulez-vous également nous donner une réputation négative?
user12205
2
Faut-il compter uniquement les modifications suggérées ou les modifications normales (qui n'augmentent PAS la répétition)? Qu'en est-il des modifications apportées au tag wiki?
Poignée de porte
Pourquoi avez-vous créé un lien vers l'historique bêta?
TheDoctor
@thedoctor mon erreur.Veuillez le changer en lien PPCG.Je n'ai pas accès à mon ordinateur actuellement.
Utilisateur enregistré le
1
Faut-il considérer la coupure? Il y a un maximum de réputation qui peut être acquise de cette manière. Je suppose que sur de nombreux sites, la communauté aurait atteint ce maximum.
Tim Seguine

Réponses:

4

Je sais que les raccourcisseurs d'URL sont tricheurs mais comme tout le monde les utilise, je devrais probablement le faire.

Bash, avec bcet raccourcisseur d'URL:67 62 60 58 54

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

Télécharge la page pertinente sur STDOUT, puis recherche '>suivie d'une séquence de chiffres - elle abuse du fait que dans le code source de la page, les guillemets simples ne sont que rarement utilisés; en fait, la séquence '>se produit deux fois, et une seule fois suivie d'un nombre, qui est le nombre de modifications. En utilisant le lookbehind de style Perl, le '>n'est pas réellement inclus dans le match.

L' -ooption fait grepsortir uniquement la chaîne correspondante plutôt que la ligne entière qui la contient (il y en a une h1sur la même ligne et je ne veux pas ça).

Le nombre de modifications résultant est concaténé *2et envoyé àbc .

@ 11684 a souligné que vous commencez avec 1 réputation, mais le demandeur a clairement oublié que ce n'est donc pas mentionné dans la question (cela briserait les réponses existantes si c'était le cas). Si vous voulez ajouter cela, insérez simplement +1à la fin du code, en ajoutant 2 caractères.

SHELF , 36 - ne compte pas car la langue a été créée après la question

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

SHELF est une version golfée de Bash, comme PYG pour Python.


la source
Je vais voler votre lien raccourci, comme x.coc'est plus court que goo.gl. :)
11684
@ 11684 ça ne me dérange pas, je l'ai déjà donné à Synthetica
2

Python ( 191 181 170 126 126 117)

@Henrik: Bonne idée d'utiliser un raccourcisseur d'URL. Ça ne me dérange pas si je viens d'emprunter le vôtre, n'est-ce pas? Juste pour le lancer, cela sera probablement battu très, très vite;)

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

Recherche le <span class='count'>qui contient le montant de réputation du bot.

ɐɔıʇǝɥʇuʎs
la source
Vous devriez pouvoir supprimer communityde l'URL.
Geobits
1
Euh, ça ne marche pas. Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ''
user80551
@ace Quelque chose s'est foutu quelque part, je ne sais pas pourquoi. Quoi qu'il en soit: cela fonctionne maintenant.
ɐɔıʇǝɥʇuʎs
plus court: x.co/4Ccg3
2

JavaScript (EcmaScript 6 + jQuery) - 80 caractères

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

Exécutez-le dans la console JavaScript sur n'importe quelle page StackExchange (bien que les fonctions de flèche ECMAScript 6 ne soient prises en charge que sur FireFox pour le moment, cela devra donc être fait dans ce navigateur jusqu'à ce que les autres rattrapent) et obtiendra la réputation de la communauté sur ce domaine. Donc, en l'exécutant, vous http://codegolf.stackexchange.comobtiendrez la réputation de la communauté Code Golf (actuellement 118)http://academia.stackexchange.com/ obtiendrait la réputation de ce site (actuellement 162).

Qui, espérons-le, répond à la

Cela devrait fonctionner pour n'importe quel site

peu de la question.

MT0
la source
3
J'ai l'impression que l'utilisation de jQuery devrait ajouter 83532 au score final
JoshWillik
1

JavaScript (avec jQuery) - 141

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

EDIT : ne fonctionne que s'il est exécuté à partir d'une page StackExchange ... ou si la même politique d'origine est supprimée .

Si la même politique d'origine est désactivée, elle peut être raccourcie à 96 caractères:

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

J'ai inclus la 1 réputation avec laquelle vous commencez!

jQuery, 76

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

sur n'importe quelle page avec jQuery et demandé par http.

jQuery, ne fonctionne que sur la page concernée - 23

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

La page sur laquelle il s'exécute est http://goo.gl/JOqzpF .

11684
la source
1

StackExchange Data 78 caractères

Cliquez ici pour lancer la requête

SELECT COUNT(*)*2FROM PostHistory WHERE UserId=-1AND PostHistoryTypeId IN(4,5)
Aidiakapi
la source
0

PowerShell (143)

Mon tout premier script PowerShell! Compte le nombre de révisions et le multiplie par deux (très inspiré par la réponse 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
la source