1

Тема: Replace API :)

У зв'язку з великим вигнанням українських користувачів з іга росіянських сайтів, багато хто відчуває синдром відмови, що проекціюється, в т.ч., на даний форум, у якому нам хочеться бачити заміну втраченому функціоналу (пошук реплейсян зі свого міста, звалище музики, «весела ферма» і т.д.). Але погляньмо на проблему ширше: нам потрібне повноцінне replace API, що дозволить інтегрувати replace.org.ua у свої проекти.
Звичайно, я не власник сайту й навіть не адмін, тому мої можливості як рядового користувача у втіленні цієї ідеї обмежені. Але...

Ніщо не заважає створити неофіційну replace-автентифікацію. Це може виглядати приблизно так:
1) користувач заходить на сторонній сайт, який підтримує реплейс-автентифікацію, вводить своє replace-ім'я та надсилає запит автентифікації.
2) сервер автентифікації отримує запит і вмикає форумного бота, що надсилає користувачеві на цьому форумі приватне повідомлення, яке містить посилання з кодом підтвердження.
3) користувач переходить за отриманим посиланням, після чого може користуватись стороннім сайтом як підтверджений користувач. (Треба продумати, як саме відбуватиметься таке підтвердження).

(Не знаю, наскільки це практично, але мене приколює сама ідея. Найближчим часом займуся цим).

Які ще ідеї будуть у цьому напрямку?

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: 0xDADA11C7, ostap34PHP, Torbins3

2

Re: Replace API :)

ще щоб повідомляло про нові теми і нові повідомлення, хто онлайн, щось аналог як на лорі "викликаю такого юзера" ...Прикрутити git, svn ... аби можна було комітити зміни і онлайн тест коду

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі
Подякували: P.Y., ping, ostap34PHP3

3 Востаннє редагувалося iovchynnikov (21.05.2017 00:57:56)

Re: Replace API :)

Як на мене - нісенітниця :)

"Реплейс автентифікація" не буде користуватися попитом, бо користувачів тут релятивно дуже мало, аудиторія дуже спеціялізована. Навіть якщо й щось робити, то без цих ботів та смс, а звичайний OAuth.

API взагалі теж досить сумнівне. Ту немає ані якоїсь корисної інформації, ані корисних сервісів, які можна використовувати в стороннії сервісах.

Подякували: P.Y., Torbins, FakiNyan, leofun014

4

Re: Replace API :)

Ну, мене більше цікавить сама задача, ніж її практична доцільність :)

Ключовий пункт — розширити можливості форуму силами рядових користувачів (без внесення змін у безпосередньо його код) — тому й переускладнена схема підтвердження користувачів через ПП. Усе обертатиметься навколо сторонніх сервісів та користувацьких програм/скриптів, що взаємодіятимуть з форумом (поточний функціонал якого неважливий — це як сокира в супі з сокирою, харчова цінність якої особливої ролі не грає).

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: ostap34PHP1

5

Re: Replace API :)

Вважаю, що надбудова без втручання в справи адміна це надзвичайно цікава річ. Я б ще хотів нових UserScript`ових шкірок та .onion адресу підняти.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: P.Y., ostap34PHP, leofun013

6 Востаннє редагувалося ostap34PHP (21.05.2017 18:20:34)

Re: Replace API :)

0xDADA11C7 написав:

Вважаю, що надбудова без втручання в справи адміна це надзвичайно цікава річ. Я б ще хотів нових UserScript`ових шкірок та .onion адресу підняти.

парсер з сайтів panBB написати! :)

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
http://elib.me/ - все про os android українською мовою!
Подякували: P.Y.1

7

Re: Replace API :)

P.Y.
Це все дуже легко реалізувати:
- комітаєте нову фічу в PunBB
- чекаєте поки адміни оновлять двигун форуму
- ...
- Profit!

Подякували: quez, ostap34PHP, /KIT\3

8 Востаннє редагувалося ostap34PHP (30.05.2017 16:58:17)

Re: Replace API :)

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
http://elib.me/ - все про os android українською мовою!

9

Re: Replace API :)

ost.bregin2014 написав:

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Regexp вже вивчив, чи що?

Подякували: ostap34PHP1

10 Востаннє редагувалося ostap34PHP (04.06.2017 12:50:48)

Re: Replace API :)

iovchynnikov написав:
ost.bregin2014 написав:

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Regexp вже вивчив, чи що?

думав так

Прихований текст
░░█▀░░░░░░░░░░░▀▀███████░░░░
░░█▌░░░░░░░░░░░░░░░▀██████░░░
░█▌░░░░░░░░░░░░░░░░███████▌░░
░█░░░░░░░░░░░░░░░░░████████░░
▐▌░░░░░░░░░░░░░░░░░▀██████▌░░
░▌▄███▌░░░░▀████▄░░░░▀████▌░░
▐▀▀▄█▄░▌░░░▄██▄▄▄▀░░░░████▄▄░
▐░▀░░═▐░░░░░░══░░▀░░░░▐▀░▄▀▌▌
▐░░░░░▌░░░░░░░░░░░░░░░▀░▀░░▌▌
▐░░░▄▀░░░▀░▌░░░░░░░░░░░░▌█░▌▌
░▌░░▀▀▄▄▀▀▄▌▌░░░░░░░░░░▐░▀▐▐░
░▌░░▌░▄▄▄▄░░░▌░░░░░░░░▐░░▀▐░░
░█░▐▄██████▄░▐░░░░░░░░█▀▄▄▀░░
░▐░▌▌░░░░░░▀▀▄▐░░░░░░█▌░░░░░░
░░█░░▄▀▀▀▀▄░▄═╝▄░░░▄▀░▌░░░░░░
░░░▌▐░░░░░░▌░▀▀░░▄▀░░▐░░░░░░░
░░░▀▄░░░░░░░░░▄▀▀░░░░█░░░░░░░
░░░▄█▄▄▄▄▄▄▄▀▀░░░░░░░▌▌░░░░░░
░░▄▀▌▀▌░░░░░░░░░░░░░▄▀▀▄░░░░░
▄▀░░▌░▀▄░░░░░░░░░░▄▀░░▌░▀▄░░░
░░░░▌█▄▄▀▄░░░░░░▄▀░░░░▌░░░▌▄▄
░░░▄▐██████▄▄░▄▀░░▄▄▄▄▌░░░░▄░
░░▄▌████████▄▄▄███████▌░░░░░▄
░▄▀░██████████████████▌▀▄░░░░
▀░░░█████▀▀░░░▀███████░░░▀▄░░
░░░░▐█▀░░░▐░░░░░▀████▌░░░░▀▄░
░░░░░░▌░░░▐░░░░▐░░▀▀█░░░░░░░▀
░░░░░░▐░░░░▌░░░▐░░░░░▌░░░░░░░
░╔╗║░╔═╗░═╦═░░░░░╔╗░░╔═╗░╦═╗░
░║║║░║░║░░║░░░░░░╠╩╗░╠═╣░║░║░
░║╚╝░╚═╝░░║░░░░░░╚═╝░║░║░╩═╝░
Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
http://elib.me/ - все про os android українською мовою!
Подякували: P.Y.1

11

Re: Replace API :)

ost.bregin2014 написав:

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Я казав не про парсер, а про UserScript`s

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: ostap34PHP, leofun012

12 Востаннє редагувалося P.Y. (03.06.2017 08:44:06)

Re: Replace API :)

Torbins написав:

P.Y.
Це все дуже легко реалізувати:
- комітаєте нову фічу в PunBB
- чекаєте поки адміни оновлять двигун форуму
- ...
- Profit!

ІМНО, це незовсім те, що нам підходить. Пропоновані тут фічі логічніше було б не інтегрувати в основний код двигуна, а реалізувати в вигляді плагінів (які адмін, при бажанні, також може підключити).

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: ostap34PHP1

13

Re: Replace API :)

ost.bregin2014 написав:
iovchynnikov написав:
ost.bregin2014 написав:

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Regexp вже вивчив, чи що?

думав так

Я вже почав на python'і (з точки зору інтеграції в двигун погано, знаю, і якщо справа дійде до цього, доведеться переписувати на php. Утім, початковий задум був у розширенні функціоналу, не турбуючи адмінів форуму — тобто, очікується, що це буде окремий сервіс (чи сервіси) на іншому сервері і в іншому домені, що звертатиметься до форуму. Якщо так, прив'язка до php стає необов'язковою) — використовую стандартний модуль для роботи з xml. У найпростіших випадках (коли не треба розбирати всю структуру документа) обходжусь регексами.

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: ostap34PHP1

14

Re: Replace API :)

P.Y. написав:

... Пропоновані тут фічі логічніше було б не інтегрувати в основний код двигуна, а реалізувати в вигляді плагінів (які адмін, при бажанні, також може підключити).

А механізм плагінів у PunBB є? І на скільки він підходить вашим задачам? Якщо усе є, то пишете плагін, викладаєте тут для рев'ю. І потім чекаєте Реплейса.

Подякували: ostap34PHP, P.Y.2

15

Re: Replace API :)

А механізм плагінів у PunBB є?

Так, є.

І потім чекаєте Реплейса.

Складний момент. Я просто не знаю, чи має пан Реплейс достатньо часу для експериментів з плагінами, і чи є такі повноваження в інших адмінів.

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: ostap34PHP1

16 Востаннє редагувалося ostap34PHP (04.06.2017 13:03:02)

Re: Replace API :)

то коли цей стартап почнеться?
P.S чекаю, в розквіті сил

Прихований текст
─────────────────────────────▄██▄
─────────────────────────────▀███
────────────────────────────────█
───────────────▄▄▄▄▄────────────█
──────────────▀▄────▀▄──────────█
──────────▄▀▀▀▄─█▄▄▄▄█▄▄─▄▀▀▀▄──█
─────────█──▄──█────────█───▄─█─█
─────────▀▄───▄▀────────▀▄───▄▀─█
──────────█▀▀▀────────────▀▀▀─█─█
──────────█───────────────────█─█
▄▀▄▄▀▄────█──▄█▀█▀█▀█▀█▀█▄────█─█
█▒▒▒▒█────█──█████████████▄───█─█
█▒▒▒▒█────█──██████████████▄──█─█
█▒▒▒▒█────█───██████████████▄─█─█
█▒▒▒▒█────█────██████████████─█─█
█▒▒▒▒█────█───██████████████▀─█─█
█▒▒▒▒█───██───██████████████──█─█
▀████▀──██▀█──█████████████▀──█▄█
──██───██──▀█──█▄█▄█▄█▄█▄█▀──▄█▀
──██──██────▀█─────────────▄▀▓█
──██─██──────▀█▀▄▄▄▄▄▄▄▄▄▀▀▓▓▓█
──████────────█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──███─────────█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──██──────────█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──██──────────█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──██─────────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──██────────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
──██───────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌
──██──────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌
──██─────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌
──██────▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌
Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
http://elib.me/ - все про os android українською мовою!

17 Востаннє редагувалося ostap34PHP (04.06.2017 13:08:32)

Re: Replace API :)

0xDADA11C7 написав:
ost.bregin2014 написав:

то що, хтось організовує, робимо парсер?(я в ділі, php)  *HI*

Я казав не про парсер, а про UserScript`s

а для парсера, щоб зчитувати інфу є цікава штука, можна її використати...

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
http://elib.me/ - все про os android українською мовою!

18

Re: Replace API :)

Зробив з цікавості..
http://replace.movacode.net/
Віддасть JSON з id, name, url - тем не реплейсі, створеих сьогодні.

Ну і код.

<?php

header('Content-Type: application/json');

$result = [];

$replaceData = file_get_contents('http://replace.org.ua/search/recent/');

preg_match_all('|topic/(\d+)/|iS', $replaceData, $outData);

foreach($outData[1] as $key => $value) {

$replaceToday = file_get_contents('http://replace.org.ua/topic/' . $value . '/');

preg_match('|post/(\d+)/|iS', $replaceToday, $outTodayData);

$firstPost = $outTodayData[1];

preg_match('|/' . $firstPost . '/#p' . $firstPost . '">(.*)</a>|', $replaceToday, $outToday);

if(mb_strstr($outToday[1], 'Сьогодні')){

    preg_match('|<a property="v:title" rel="v:url" href="http://replace.org.ua/topic/' . $value . '/">(.*)</a>|', $replaceToday, $themeName);

    $result[] = ['id' => $value, 'name' => $themeName[1], 'url' => 'http://replace.org.ua/topic/' . $value . '/'];

}

}

echo json_encode($result);
Подякували: 0xDADA11C7, ostap34PHP, raxp, P.Y., leofun015

19

Re: Replace API :)

На майбутнє (щоб не забути).

Додаткова інформація про користувача (доступна на окремій сторінці чи через юзерскрипт, що вставляє додаткові поля під аватаркою біля повідомлень на форумі):
— «Рейтинг кодера» (відсоток повідомлень користувача, що містять тег code). Виводиться у форматі «Не кодер» (жодного повідомлення з кодом), «0% кодер» (якщо кодерських повідомлень менше 0,5%), «1% кодер», ..., «100% кодер».
— «Статті». Якщо користувач створив мінімум одну тему в підрозділах «Статті», з'являється поле «Статті: n» (де n — їх кількість). Поле клікабельне й веде на сторінку пошуку статей, створених даним користувачем.

Очевидно, для реалізації цих фіч зовнішніми засобами, доведеться створити пошукового робота, що індексуватиме потрібні сторінки форуму й оновлюватиме інформацію в міру появи на форумі нових повідомлень.

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: LoganRoss, ostap34PHP2