Open lisanyan opened 8 years ago
У меня чего-то не получается, выдаёт html страницу.
Так должно работать
<form id="postform" action="/wakaba.pl" method="post" enctype="multipart/form-data">
<input type="hidden" name="section" value="b">
<input type="hidden" name="task" value="json">
<input type="hidden" name="json" value="authorize">
<input type="text" name="auth" value="">
</forrm>
Лол, а я шлю запрос на b/api/authorize
.
Попробую тогда.
rewrite правило /api/ не работает с POST запросами Оки
Well, параметр task тут не нужен.
section
, как оказывается, тоже. Ну это логично.
section == b
, если нет аргумента.
Всё, выпустил 1.4 с поддержкой авторизации.
Thanks again
Хм, а флаги стран прикрутить можно? Поля location, location_full в объекте поста, geoip_enabled в конфиг объекте, флаги лежат в /img/flags/ (файлнеймы капсом)
И еще auth cookie добавить к /api/thread,/api/threads (клиент же оттуда берет конфиг?) и проверку c authorizedTripcode != null можно убрать тогда, если names_allowed будет отдавать 1.
И тут вроде должно быть
int attachmentCount = configObject.optInt("max_files", 4);
вместо
int attachmentCount = configObject.optInt("max_res", 4);
Хм, а флаги стран прикрутить можно?
Готово
и проверку c authorizedTripcode != null можно убрать тогда
Я, помню, специально делал именно так, как это сделано сейчас, но это было когда ещё кука auth не поддерживалась. Сейчас, наверное, можно убрать эту проверку.
И тут вроде должно быть
Точно, невнимательно копировал же. Сделал нормально.
Всё, заливать обновление, или ещё что-то?
Спасибо, пока вроде всё, заливай.
Залил.
Оки.
Можешь допилить хандлер чтобы показывал ip/причину/срок когда истекает(0 - never)?
Новый апи для банов (return функции поста)
бан as-сети
{
"banned" : 1,
"bans" : [
{
"showmask" : 0,
"ip" : "94.242.58.252",
"reason" : "AS Network is banned",
"expires" : "0"
}
],
"error" : "Бан :<",
"error_code" : 200
}
обычный ip-бан
{
"banned" : 1,
"bans" : [
{
"network" : "94.242.58.252",
"showmask" : 0,
"ip" : "94.242.58.252",
"reason" : "test",
"setbits" : 32,
"expires" : "1468527252"
}
],
"error" : "Бан :<",
"error_code" : 200
}
бан dnsbl
{
"banned" : 1,
"bans" : [
{
"showmask" : 0,
"ip" : "176.10.104.240",
"reason" : "This IP was listed in tor.dnsbl.sectoor.de blacklist!",
"expires" : 0
}
],
"error" : "Найдена прокси.",
"error_code" : 200
}
и еще печеньку auth добавь к /api/post.
Готово. Обновлять?
Сек, еще вопрос, можно у Icon менять размер шрифта/позицию текста или это в самом клиенте захардкожено?
Не понял. У иконки поста? Что за размер шрифта и позиция текста?
У меня на старой мобилке с низкоразрешением не влезала геоинфа в диалоге по клику на флаг (получалось что-то вроде RUSSIAN FEDERATION, SAINT PETERS), пришлось урезать строку до вида RU, Saint Petersburg.
Алсо, функция поста не всегда отдает поле banned, не будет exception из-за того что его нет, или лучше добавить его во все ошибки?
А, да, текст должен быть коротким и влезать в 1 строку. Оно на что-то более серьёзное не было рассчитано.
Алсо, функция поста не всегда отдает поле banned, не будет exception из-за того что его нет, или лучше добавить его во все ошибки?
int banned = jsonObject.optInt("banned", 0);
Не будет. Если оно отсутствует или оно не преобразуется в число — вернёт 0.
Тогда окей.
Поиск по борде еще можно прикрутить? /api/search Параметры
find - строка для поиска
op - искать только в оп-постах
comment - поиск по тексту в посте (должен быть 1)
subject - поиск по теме
Тоже готово.
Thx~
Обновляй.
В общем, если я отключаю флажки на борде, и рефрешу полностью тред (который закешировался с флажками), то клиент вылетает.
Device: Sony Ericsson hallon (MT15i)
SDK: 18 (4.3.1)
Application: 1031 (2.8.0)
----------------------------------------
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at chan.content.model.Post.contentEquals(Post.java:559)
at chan.content.model.Posts.pendingMerge(Posts.java:339)
at com.mishiranu.dashchan.async.ReadPostsTask.doInBackground(ReadPostsTask.java:184)
at com.mishiranu.dashchan.async.ReadPostsTask.doInBackground(ReadPostsTask.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
... 3 more
Да, глупая ошибка. Попробуй удали пока что тред из кэша (или вообще кэш очисти), а я сейчас исправлю.
Это ошибка не в модуле, а в клиенте, так что только с его обновлением что-то изменится.
Оки.
Done.
Эх, я только подумал, что мне будет проще локально у себя их просто убрать для теста, и удалил прошлое сообщение... Ну да ладно.
Да я уже всё проверил. На будущее — лучше создай issue у самого проекта, если подобный вылет происходит, расширение само по себе не может приводить к вылету (нет, ну может конечно, если постараться), а если всё таки приводит — это баг клиента.
Получилось пофиксить?
Alrighty.
Да, получилось.
API update
Новые поля в конфиге
max_comment_length //Maximum number of characters in a comment
max_field_length //Maximum number of characters in subject, name, and email
default_name //Дефолтный нейм (аноним итд)
Скорость борды (постов в час) - поле board_speed в boardinfo.
Печенька auth
переименована в wakaauth
Алсо, категории борд можешь прикрутить? Только я не знаю как их лучше реализовать (чтобы динамически подгружалось), сейчас есть поле board_cat в объекте массива с досками.
Могу добавить пару строк, чтобы делать сплит по "|" в массивы
"info" : {
"category_order" : "Обсуждения|Общее|Японская культура",
"board_order" : "a|b|d|diy|elf|h|l|mg|mu"
}
Или добавить сортированные массивы
"info" : {
"category_array" : [
"Обсуждения",
"Общее",
"Японская культура"
],
"board_array" : [
"a",
"b",
"d",
"diy",
"elf",
"h",
"l",
"mg",
"mu"
],
}
UPD: Welp, думаю оставлю массивы UPD: Алсо, добавь капкод мода
adminpost == 1 //capcode - Team
adminpost == 2 //capcode - Mod
max_comment_length
Точно максимальное число символов? Не байт?
Байт, но сейчас исправлю.
Печенька auth переименована в wakaauth
А b/api/authorize
как работает? Его параметр тоже wakaauth
называется или по прежнему auth
?
Байт, но сейчас исправлю.
Лол, я сейчас в d пытался пост отправить, мне в качестве кода ошибки возвращалась длина строки. Я так и понял, что ты длину строки тестируешь.
Лол, я сейчас в d пытался пост отправить, мне в качестве кода ошибки возвращалась длина строки. Я так и понял, что ты длину строки тестируешь.
Да, лол.
Done, теперь чекает по символам.
Параметр по прежнему auth называется.
Готово всё. Обновлять?
Йеп.
Можешь альт. домен обновить?
02ch.info мертв, новый - buttflaps.pp.ua
Готово.
I suck at intros..
В общем, если файл загружен на pomf.cat, то src получается вида //a.pomf.cat/plapla.webm (линк без протокола) и в итоге аппендится к домену борды. В массиве файла есть ключ external_upload (1/0), можно по нему проверять, и не аппендить линк или добавлять к нему протокол (e.g. "https:" + //a.pomf.cat/plapla.webm).
Еще в апи пару новых фич добавила Удаление постов теперь может отдавать json, параметр ajax=1 в запрос
При успешном удалении вернет
{ "redir" : "/b/thread/num" }
или если был удален тред{ "redir" : "/b/" }
Еще желательно добавлять параметр parent с номером треда к delete task, если пост из треда удаляется, чтобы правильный редирект был.
Список борд теперь можно забирать по /board/api/getboards
Алсо, теги sup/sub в разметку можно добавить и инпут no_pomf (не грузить файлы на внешний сервер) в форму отправки (если не сложно).