Якби громада була б людиною


17

Ну спільнота - це просто бот. Але що робити, якби це була людина?

Ваше завдання - знайти репутацію спільноти, якби вона отримала репутацію за внесені зміни (просто 2 * правки)

Це повинно працювати для будь-якого сайту, але ми б розглядали питання PP&CG для цього питання.

Використовуйте будь-яку мову, навіть data.stackexchange буде працювати.

Оскільки це кодовий гольф, найменший код виграє стільки репутації, яку я набуваю + 15 (через баунті я залишу 101 для себе: P).

EDIT: розгляньте всі зміни, що сприяють підвищенню репутації.


3
Що робити, якщо у вас є потоки? Чи будете ви давати нам і негативну репутацію?
користувач12205

2
Чи слід також рахувати лише запропоновані зміни або звичайні зміни (які НЕ збільшують кількість повторень)? Як щодо редагування вікі тегів?
Дверна ручка

Чому ви пов’язали бета-версію історії?
TheDoctor

@thedoctor моя помилка. Змініть її на посилання PPCG. Зараз у мене немає доступу до мого комп'ютера.
Зареєстрований користувач

1
Чи потрібно враховувати скорочення? Існує максимум репутації, яку можна отримати таким чином. Я здогадуюсь, що на багатьох сайтах громада досягла б цього максимуму.
Тім Сегуїн

Відповіді:


4

Я знаю, що скорочувачі URL-адрес є хитрішими, але, оскільки всі інші користуються ними, я, мабуть, повинен.

Bash, bcі URL-скорочувач:67 62 60 58 54

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

Завантажуйте відповідну сторінку в STDOUT, після чого виконується пошук з '>наступною послідовністю цифр - це зловживає тим фактом, що у вихідному коді сторінки одиничні лапки використовуються лише рідко; насправді послідовність '>відбувається двічі, і лише один раз слідує число, яке є числом правок. Використовуючи погляд в стилі Perl, '>він насправді не включається в матч.

Цей -oпараметр робить grepвисновок лише відповідним рядком, а не всім рядком, що містить його (є в h1тому ж рядку, і я цього не хочу).

Отримана кількість редагувань об'єднується *2і надсилається до bc.

@ 11684 вказував, що ви починаєте з 1 репутації, але запитувач чітко забув, що це не зазначається у запитанні (воно порушить існуючі відповіді, якщо це було б). Якщо ви хочете додати це, просто додайте в +1кінці коду, додавши 2 символи.

SHELF , 36 - не вважається мовою, створеною після запитання

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

SHELF - це гольф-версія Bash, як PYG для Python.


Я збираюсь вкрасти ваше скорочене посилання, як x.coкоротше, ніж goo.gl. :)
11684

@ 11684 Я не заперечую, я вже подарував це Synthetica

Скорочення URL-адрес, розумний;)

2

Пітон ( 191 181 170 126 117)

@Henrik: Хороша ідея використовувати скорочувач URL. Не проти, якщо я просто позичу твою, чи не так? Просто, щоб розпочати це, це, мабуть, буде побито дуже, дуже швидко;)

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

Шукає те, <span class='count'>що містить кількість репутації бота.


Ви повинні мати змогу видалити communityURL-адресу.
Геобіц

1
Е, це не працює. Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ''
користувач80551

@ace Щось кудись вибухнуло, не знаю чому. У будь-якому разі: це працює зараз.
ɐɔıʇǝɥʇuʎs

коротше: x.co/4Ccg3

2

JavaScript (EcmaScript 6 + jQuery) - 80 символів

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

Запустіть його в консолі JavaScript на будь-якій сторінці StackExchange (хоча функції стрілок ECMAScript 6 підтримуються лише на FireFox на даний момент, тому це потрібно буде робити в цьому браузері, поки інші не наздогнатимуть) і отримаєте репутацію Спільноти в цьому домені. Тож запустивши йогоhttp://codegolf.stackexchange.com ви отримаєте репутацію спільноти Code Golf (наразі 118), а запустивши її http://academia.stackexchange.com/, отримаєте репутацію цього сайту (зараз 162).

Що сподіваємось, відповідає на

Це має працювати для будь-якого сайту

біт питання.


3
Я відчуваю, що за допомогою jQuery слід додати 83532 до кінцевої оцінки
JoshWillik

1

JavaScript (з jQuery) - 141

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

EDIT : працює лише в тому випадку, якщо виконується з будь-якої сторінки StackExchange ... або якщо таку саму політику походження відключено .

Якщо таку саму політику походження вимкнено, її можна скоротити до 96 знаків:

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

1

Я включив 1 репутацію, з якої ви починаєте!

jQuery, 76

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

на будь-якій сторінці з jQuery і запитується http.

jQuery, працює лише на відповідній сторінці - 23

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

Сторінка, на якій він працює, http://goo.gl/JOqzpF .



0

PowerShell (143)

Мій перший в історії сценарій PowerShell! Підраховує кількість модифікацій і раз у два рази (дуже натхненний відповіддю @ Synthetica's Python).

$s=(New-Object Net.WebClient).DownloadString("http://tinyurl.com/pfmsq8w");(0+($s.Substring($s.IndexOf("s='cou")+10,8) -replace "[^\d]",""))*2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.