Ловим баги в шерсти кода, обсуждаем нововведения, реквестируем новые плюшки. Шатания выходят на совершенно новый уровень, сумеет ли Курисаба-тян пережить всю мощь костыльной синергии Хомуры, Рейму и 1.5 анонов? Скоро узнаем. Предыдущий >>32736
>>48378 Из плюсов то что в RPC одна точка входа и не нужно ничего проектировать как в api. У тебя просто набор методов. Это особенно удобно когда методов много. Но все же мне кажется в данном случае для нескольких вьюшек rpc не нужно и даже оверхед.
А для оп-пика обязательно надо было брать порнографию?
>>48357 > Скоро узнаем Вот прошлым вечером и узнали :D
>>48294 >JSON RPC Ок, надо будет посмотреть, что это за зверь такой. >>48299 >[{op_post:POST, answers:234, pic_answers:48, posts:[POST, POST, POST]}, {op_post:POST, answers:458, pic_answers:124, posts:[POST, POST, POST]}] Да, это будет нормально. >Если они на сервере хранятся как отдельные поля, то лучше отдавать отдельно Да, как отдельные. Ок. Там даже размер тамбнейла зачем-то есть. Могу и его отдавать. >>48304 >разве для пхп стандарт не lowerCamelCase для методов? Насколько я видел, PHP — смесь всего: и CamelCase, и lowerCamelCase, и snake_case. >>48309 И? >>48319 >Просто думал, что ты уже знаешь. Не, к сожалению, не проверял. >Интересно, зачем это было? Вот у >>48321 написано. И суть именно в том, чтобы делать его не hidden, а прятать с помощью стиля: ибо первое — более тривиальная вещь и пасётся большим числом ботов, чем второе. >Так можно было в настройках выбрать, задействовать gd или imagemagick. Да. Только последнего на сервере нет. >сервер БУДЕТ пытаться загрузить изображение, даже если его размер превышает всякие рамки здравого смысла. Но разве он не выделит поначалу для него необходимую память (при попытке чего для гигантского изображения он закономерно обломится)? >Например, поставить такой код: Но, конечно, да; раз уж getimagesize() была вызвана, то можно и проверить, заметного оверхеда не будет. >Почему видя png, курисаба делает предпросмотр в png, хоть это и куда больше обычных предпросмотров, а видя gif — делает gif, хоть это и выглядит откровенно убого? Честно? Не знаю. Так было. =) Возможно, чтобы полагаться в превьюшке на imagetype. Ну и, наверное, для того, чтобы фоточки жать как фоточки, а рисунки — как рисунки, а не шакально. Хотя на превьюшке это будет малозаметно. >Пока друг не понял, что это «CATALOG». Да-да. Стоп, а я разве это не вычистил?! Вот же ж... >что делать с loadbalancer'ом, но, присмотревшись, понял, что он безнадёжно сломан. И, при надобности, чинить его и так уже нужно весь. Я, если честно, могу только по названию предположить, для чего он нужен. И не проще ли его выпилить... или всё же пусть остаётся, а если надо будет — починим? >Но, объективно говоря, я не буду тебя бранить, если ты это не закоммитишь в продакшн. Проверку размеров — закоммичу, выпиливание создания каталожных тамбнейлов — тоже, а вот про gif/jpg/png... Тут вот какое дело: большинство тамбов, которые есть — того же типа, что и файл; поэтому либо надо их все конвертать (а я на подобное как-то раз убил целую ночь), либо как-то различать, где тамб jpg-шный, а где — нет. >>48326 >Заинтересовало также поле «MAX_FILE_SIZE». Вроде как оно использовалось для проверок при загрузке файла, которые стали не нужны после реализации js-отправки. >>48331 >они успеют еще 10 API сделать и новый движок, пока я хоть что-то смогу запилить. Отчего-то проиграл. >>48333 >И вся универсальность накрывается, всё равно будут отличия. Так всё дело-то как раз в том, что в целом разметка остаётся той же — и даже тянет за собой исторические вещи. Как, например, тепбе класс .unkfunc для спойлеров? >Не проще ли обойтись гетом с передачей параметров через URL? Как правильно говорит Рейму (>>48335), в строке GET передать можно только что-то небольшое — например, id борды или там номер поста. Список постов, например, — уже нет. >>48334 Лол. А у меня сегодня показывало -4 соединения к базе. Какой-то просто день негатива (в буквальном смысле, от negative — «отрицательный»). P.S. Если вдруг найдёшь причину — сообщи, ладно? >>48335 >Да, Json применять как затычку в каждую дырку — действительно выглядит глуповато. А почему не его? Универсальный механизм представления данных в виде строки, хорошо поддерживается как клентом (javascript), так и сервером (PHP). >>48336 >Единственная причина так делать — быть не такими как все, вот и всё. А какими бывают все? Я просто не знаю. Может, есть и другой велосипед, кроме JSON. >апи никогда не разрастётся до такого, что запрос не влезет в адресную строку Почему же? К примеру, передача массива из 50-100 номеров постов. В 255 символов это точно не впихнуть. >GET значит получить. Я хочу получить список тредов, получить список постов, получить какой-то пост. ...Получить содержимое 50 постов, которые появились в треде с последнего обновления, например (без придумывания костылей типа запроса получить_последние_посты_треда_с_данным_ОП-постом_пришедшие_с_такого_то_момента()). Да, не очень логично, да, сбивает кэширование. Но лучшего способа я не вижу. Впрочем, конечно, можно сделать так, чтобы запрос на получение можно было отправить как GET-ом, так и POST-ом, если надо. >>48353 >то придется предварительно энкодить файл хотя бы в base64. А это уже 33% к весу файла. Так через форму же файл так же отправляется, если я не ошибаюсь. >>48378 >Забавно, я в новый тред с дашачана отписаться не могу. Мда, жесть какая-то. >Как освобожусь, постараюсь разобраться, в чём дело. Да, постарайся, пожалуйста. >>48387 >Но все же мне кажется в данном случае для нескольких вьюшек rpc не нужно и даже оверхед. Да, пожалуй, так оно и есть. >>48410 >А для оп-пика обязательно надо было брать порнографию? Да, что-то меня тоже ОП-Хомочка смущает. Да, кстати, гоменнасай за сегодняшние пропадания Курисача. Тут вообще какое-то адище было. Ваша Хомура вот сейчас только оклемалась от битв с ведьмами, захватившими хостинг Курисача, лол. Во-первых, накрыло базу на сервере (и она не вставала, похоже, даже после ребута), во-вторых, число соединений к базе отчего-то было отрицательным, и в-третьих — я решил в процессе поиска проблем переключить версию PHP на ту, которая более лучше (то есть, седьмую), из-за чего оно поругалось немного на конструкторы классов — пришлось в срочном порядке дописывать, ибо переключение обратно отчего-то ввело сервер в странную ситуацию, когда пятый и седьмой PHP переключались с интервалом в несколько секунд, лол. Алсо, похоже, я нашел механизм, через который нас пытались завалить — это был никакой не модный 0day в mysqld, а банальный SQL injection, который можно было устроить в форме поиска (причём, совершенно дурацким способом). К счастью, я успел это поправить быстрее, чем злодей подобрал нужное количество скобочек и кавычек для классического Robert'); DROP TABLE Students; --. =) И есть подозрение, что вложенными запросами SELECT SLEEP(5) он базу и положил. И ведь только вчера, судя по кэшу гугла, нас обсуждали на тирече (и как раз во время обсуждения клауда зарегистрировала ненормальный пик трафика и посещений). Сбэкаплю-ка я базу на всякий случай, а то вдруг что...
[{op_post:POST, answers:234, pic_answers:48, posts:[POST, POST, POST]}, {op_post:POST, answers:458, pic_answers:124, posts:[POST, POST, POST]}]
getimagesize()
.unkfunc
Robert'); DROP TABLE Students; --
SELECT SLEEP(5)
>>48420 Хранить размер превью важно т.к до загрузки превью браузер ничего не знает о ее размере и страница будет прыгать.
Оп пост в респонзе лучше не выделять, а поместить в посты(потому что внезапно это пост). Так будет удобнее всем. Генерировать превьюшки лучше в jpeg и разве что для png модно оставить т.к альфаканал выглядит красиво. Его по идее можно даже детектить. Если сейчас менять то придется либо в шаблоне ставить условие пересоздавать все превьюшки, либо писать в базу тип превью. Не, я понимаю что быдлокодеры пишут как угодно, но в 2016 игнорировать соглашения и общепринятые стандарты это плохо. Кстати ж надеюсь тут PDO используется?
>>48333 >POST в виде JSON? Хорошо ли это? Не проще ли обойтись гетом с передачей параметров через URL? «get_posts_by_id» может передавать достаточно много информации, так что оно не влезет в URL. Тем более ответ-то все равно нужен JSON. >>48335 >Да, Json применять как затычку в каждую дырку — действительно выглядит глуповато. А какие есть еще оптимальные варианты для мобильных приложений? >>48336 >Полагаю, апи никогда не разрастётся до такого, что запрос не влезет в адресную строку, даже близко такого не будет. «get_posts_by_id». Уже. >>48353 >это не API, а RPC Я, наверное, чего-то не понимаю, но разве RPC — это не один из стандартов для реализации API? Одно другого не исключает же? >но клиенту придется работать с двумя ресурсами Да в общем-то с одним и тем же курисачем, просто рид будет через /json.php, а пост через /boards.php >>48420 >Да, это будет нормально. Тут анон ниже предлагает оп-пост не выделять, а просто ставить первым в список постов. Думаю, он прав, потому что в запросе отдельного треда у меня оп-пост тоже не выделяется, будет унификация. [{answers:234, pic_answers:48, posts:[POST, POST, POST, POST]}, {answers:458, pic_answers:124, posts:[POST, POST, POST, POST]}] >Там даже размер тамбнейла зачем-то есть. Давай, как thumbheight и thumbwidth. Мне кажется, оно вряд ли понадобится, но все-таки. >Отчего-то проиграл. Нет, серьезно, торопится некуда. Можно начать с функции «get_boards», поскольку она самая простая, а заодно станут видны трудности на пути, да и для тестов мне на ближайшее время хватит более чем. >>48428 >Оп пост в респонзе лучше не выделять, а поместить в посты Разницы, на самом деле, для клиента особой нету. Вопрос как будет удобнее на сервере реализовывать.
[{answers:234, pic_answers:48, posts:[POST, POST, POST, POST]}, {answers:458, pic_answers:124, posts:[POST, POST, POST, POST]}]
>>48429 Они предоставляют некий интерфейс, но в RPC ты вызываешь методы через одну точку входа. А сервисы в нем могут могут быть вообще никак не связаны. Про ресурсы это я в смысле что тут будет рпц, а там форма. Не очень кошерно.
>>48428 >Не, я понимаю что быдлокодеры пишут как угодно, но в 2016 игнорировать соглашения и общепринятые стандарты это плохо. Когда речь касается движка 2007 года, в который напихали костылей по самую глотку, то о каких соглашениях может идти речь?
>>48440 Ты пишешь новый код, у которого общего со старым разве что БД. Логично бы начать писать правильно т.к это по сути новый проект(и я предлагаю так и сделать. Будет полезно почитать http://www.phptherightway.com/
>>48452 Я просто мимошел, если что. >у которого общего со старым разве что БД В таком случае да. Я говорил в конексте интеграции каких-то фич в сам движок.
>>48453 Я им уже много раз предлагал не насиловать труп и начать потихоньку переписывать важные компоненты. Или дорабатывать один из современных движков. Сами фичи да, хуево пилить что-то годное, когда основа херовая лапша с «собачками».
>>48420 > Так всё дело-то как раз в том, что в целом разметка остаётся той же — и даже тянет за собой исторические вещи. Вот с чего ты взял вообще? Какую-то совместимость могут сохранять, какую-то — нет. Нельзя быть в этом уверенным, у веб-разработчиков разные требования к совместимости, большинство, я думаю, просто забивает, и вполне справедливо: кукла работает — и хватит на этом. > Как, например, тепбе класс .unkfunc для спойлеров? Это частный пример, в общем-то, ничего не доказывающий. И не для спойлеров, а для цитат. Кстати, скорее всего это используется для универсальности стилей, а не для парсинга. > А почему не его? Универсальный механизм представления данных в виде строки, хорошо поддерживается как клентом (javascript), так и сервером (PHP). > А какими бывают все? Я просто не знаю. Может, есть и другой велосипед, кроме JSON. Универсальный механизм — это application/x-www-form-urlencoded или multipart/form-data, именно таким образом браузер кодирует формы. Через javascript можно передавать любые данные, включая JSON, но стоит 10 раз подумать перед этим. > Почему же? К примеру, передача массива из 50-100 номеров постов. В 255 символов это точно не впихнуть. Зачем ты будешь передавать массив из 50-100 номеров постов? Можно, конечно, сейчас навыдумывать кучу бессмысленных запросов, которые не будут влезать в адресную строку, но давай исходить из потребностей: где могут понадобиться такие длинные запросы? В крайнем случае, если очень нужно, — можно допустить работу как через GET, так и через POST. > ...Получить содержимое 50 постов, которые появились в треде с последнего обновления, например (без придумывания костылей типа запроса получить_последние_посты_треда_с_данным_ОП-постом_пришедшие_с_такого_то_момента()). А номера этих 50 постов ты откуда будешь узнавать? Будет запрос номеров постов в треде, сравнение с текущими, а затем вторым запросом получение нужных постов? Звучит дико. Кстати, то, о чём ты сказал, — не костыль. Так работают все борды, имеющие внизу страницы кнопку «Получить новые посты». Либо же грузят целый тред, но это совсем другая история. > Так через форму же файл так же отправляется, если я не ошибаюсь. Если используется multipart/form-data, то файл в чистом виде отправляется. А он используется. > Да, постарайся, пожалуйста. Я что-то вчера очень утомился, сегодня вечером посмотрю.
>>48357 Хомура окончательно увиабушил в закат.
Не знаю, писали уже или нет, но если открыть последние 50 постов в треде, а потом жмакнуть кнопочку «Получить новые посты», то магия работает как-то не так. >>48529 В смысле?
>>48430 >Не очень кошерно. Если все делать через JSON, то >>48353 >то придется предварительно энкодить файл хотя бы в base64. А это уже 33% к весу файла Это еще более некошерно. >>48519 >Через javascript можно передавать любые данные, включая JSON, но стоит 10 раз подумать перед этим. Какой такой javascript? Приложение мое будет на QML + Python, а модули дашчана или Микучана не знаю, на чем пишутся, но не на JS. >Будет запрос номеров постов в треде, сравнение с текущими, а затем вторым запросом получение нужных постов? Звучит дико. Почему же? Преимущества: 1) Маленькая нагрузка на сервер — отдавать список постов в треде или посты по id нагружает мало. В отличие от той ситуации, когда серверу приходится вычислять, а какие посты клиенту отдавать, а какие у него уже есть. Причем кэширование все равно сбито будет в любом случае, ибо у каждого клиента свои наборы требуемых им постов. 2) Удаленные посты — клиент будет видеть, какие посты удалены, по разнице всписках постов. Минусы: 1) При обновлении 2 запроса вместо одного — один за списком постов, и второй, чтобы получить новые посты.
>>48427 >Хранить размер превью важно т.к до загрузки превью браузер ничего не знает о ее размере и страница будет прыгать. Ок, ладно, тогда вопрос — надо ли его отдавать клиенту? >>48428 >Генерировать превьюшки лучше в jpeg и разве что для png модно оставить т.к альфаканал выглядит красиво. А в теории, в gif можно делать анимированные превьюшки (и такой реквест уже был). Так что, кажется, смысла делать превью исключительно в jpg нет. >Если сейчас менять то придется либо в шаблоне ставить условие пересоздавать все превьюшки, либо писать в базу тип превью. Ага, первое — долго, а второе — костыль. >Не, я понимаю что быдлокодеры пишут как угодно, но в 2016 игнорировать соглашения и общепринятые стандарты это плохо. Если ты можешь — напиши, в конце концов. Я вообще до начала копаний с курисабой с веб-разработкой был знаком весьма поверхностно. >Кстати ж надеюсь тут PDO используется? ADO. >>48429 >Тут анон ниже предлагает оп-пост не выделять, а просто ставить первым в список постов. Да, хорошо. >Давай, как thumbheight и thumbwidth. Мне кажется, оно вряд ли понадобится, но все-таки. Ладно, не жалко, пусть будет. >>48456 >Я им уже много раз предлагал не насиловать труп и начать потихоньку переписывать важные компоненты. А я много раз говорил: чтобы полноценно это сделать, времени лично у меня не хватает. Это надо брать, не знаю, отпуск на месяц, садиться и переписывать это всё. И то у меня именно опыта разработки под веб практически нет (считай, серьёзно я его начал как раз с курисабы). Вчерашняя инъекция в поле поиска тому подтверждение. Давайте поможем Хомуре переписать курисабу Если кто хочет, может написать свой движок, но главное — чтобы он поддерживал все используемые фичи курисабы и при этом позволял если не использование той же самой базы, то хотя бы несложную конвертацию формата базы туда и сюда. >>48519 >Какую-то совместимость могут сохранять, какую-то — нет. >кукла работает — и хватит на этом. Но ведь это уже значит, что базовая совместимость есть. А именно она нужна для клиентов. >Это частный пример, в общем-то, ничего не доказывающий. Правильно, это пример, как раз показывающий то, что большинство старается сохранять совместимость. >И не для спойлеров, а для цитат. Да, пардон. >Кстати, скорее всего это используется для универсальности стилей, а не для парсинга. Но ведь для универсальности же. >Универсальный механизм — это application/x-www-form-urlencoded или multipart/form-data, именно таким образом браузер кодирует формы. Его создание в javascript на порядок сложнее. Сможешь ли ты одной строчкой упаковать в один из этих форматов, к примеру, массив объектов, в том числе содержащих массивы? К примеру, страница доски как раз собой такое и представляет. Конечно, эта страница приходит с сервера, а не уходит на него, но я про то, что проще, когда и туда и сюда идут данные в одном и том же формате. >В крайнем случае, если очень нужно, — можно допустить работу как через GET, так и через POST. Ну я про это и говорю. Так и сделаю, и кто хочет — может работать через GET, кто хочет — через POST. >Будет запрос номеров постов в треде, сравнение с текущими, а затем вторым запросом получение нужных постов? Почему нет? >Кстати, то, о чём ты сказал, — не костыль. Так работают все борды, имеющие внизу страницы кнопку «Получить новые посты». Это просто один метод на совершенно конкретный случай и больше ни на какой. Т.е., никакой реюзабельности и расширяемости. Мне, всё же, больше нравится unix-way, когда есть куча простых инструментов, которые можно комбинировать и получать то, что тебе надо. >Если используется multipart/form-data, то файл в чистом виде отправляется. Хм, всю жизнь думал, что он там точно так же в base64. Ладно, мб я и неправ. >>48529 Нэ? Если что, перекат делал не я >>48613 Да, знаю. В процессе фикса. Кстати, выкачу сюда последние фиксы: — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — (NEW) превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — (NEW) сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — если нет куков, отдаются просроченные страницы (normal) (medium) — NEED INFO (теперь страницы генерятся динамикой; проверяйте, не починилось?) — при некоторых условиях пропадает трипкод и имя (minor) (medium) — NEED INFO (не могу воспроизвести; нужна инструкция по воспроизведению бага) — (NEW) превьюшки генерить только в формате jpg (minor) (medium) — NEED INFO (надо взвесить все «за» и «против») — (NEW) read.php сбивает обновление треда (тред перезагрузается и дописывается в конец) (major) (hard) — DONE — (NEW) кукла — request_uri обрезать по знаку вопроса (major) (easy) — DONE — (NEW) SQL-injection в форме поиска (major) (easy) — DONE — включенное автообновление жрёт очень много ресурсов (normal) (hard) — DONE (правда, оказалось, из-за переписывания innerHTML) — хайлайт сбивает автообновление (normal) (medium) — DONE (обновление переписано, теперь должно работать) — автообновление: счетчик тикает, но посты не обновляются (normal) (medium) — DONE (обновление переписано, теперь должно работать) — (NEW) после редактирования постов — два таймера одновременно (normal) (easy) — DONE — (NEW) при обновлении не альтерится карта ответов ОП-поста (normal) (easy) — DONE — (NEW) перейти на PHP 7 (normal) (easy) — DONE — оптимизация подгрузки постов (json) (minor) (hard) — DONE — сделать в шаблоне капчу только если на доске капча включена (minor) (easy) — CANCELLED (не стоит, а то мамкины вайпиры сразу набигают) — word-wrap не работает (minor) (easy) — DONE — кат не помещается в пост с картинкой правильно (minor) (easy) — DONE — (NEW) шрифты брать по https (minor) (easy) — DONE — (NEW) номер добавляемых постов при автообновлении промахивается на 1 (minor) (easy) — DONE — (NEW) «нет новых постов» — убрать при редактировании поста (minor) (easy) — DONE — (NEW) говорить, что в хроме кукла не обнаружена (minor) (easy) — DONE — (NEW) отключать фичи, несовместимые с куклой при первом детекте (minor) (easy) — DONE — (NEW) заголовок в поиске постов через read.php и read2.php (minor) (easy) — DONE — (NEW) в стиле tuvik, claire, cdark, claire.advance черный шрифт во фрейме (minor) (easy) — DONE — видео+картинка (major) (hard) — (NEW) проверка размеров заливаемых пикч (major) (easy) — сделать отправку по Ctrl+Enter настраиваемой (normal) (hard) — без капчи посты с куклы отправляются два раза (normal) (medium) — скрытие постов по имени, тексту поста (minor) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — (NEW) делать API для Суигинто (minor) (hard) — откуда-то лезет скроллбар и почему-то превьюшка вылезает за край (minor) (medium) — картинки, похоже, разворачиваются больше, чем надо (minor) (medium) — спойлеры картинок (minor) (medium) — cделать отдельно однопоток постов как на хорочане или как на хайбане (minor) (medium) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — vimeo не отображает превьюшки видео (minor) (medium) — фрейм колбасит (см. пост 42066) (minor) (medium) — чтобы был и диалог открытия и превью по клику на зоне «перетащи файл сюда» (minor) (medium) — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — сделать, чтобы предпросмотр закрывался при отведении мышки (minor) (medium) — разворачивание поста на предпросмотре со страницы борд (см. пост 46341) (minor) (medium) — (NEW) Из превьюшек удаляются карты ответов при автообновлении (minor) (medium) — (REOPENED) «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — ускорить статистику в админке (minor) (easy) — предпросмотр поста не закрывать при клике по кату (minor) (easy) — предпросмотр поста при правке глючит (minor) (easy) — (NEW) Разворот поста и всплывание меняет номер на 1 (minor) (easy) — (NEW) автообновление косячит в режиме «последние 50 постов» и «первые 100 постов» (minor) (easy) — (NEW) шрифты захостить локально (minor) (easy) — (NEW) выпилить создание каталожных тамбнейлов (minor) (easy)
Микуоверчани н-не отправляет посты и пишет ошибку 301.
>>48635 Размеры не будут лишними, хотя зависит от типа клиента, но отдавать их определенно надо. Анимированные гифки на превью? Кто-то знает толк. Еще и вес соответствующий. Я б написал и уже пишу потихоньку, но дело в том что пишу на go. А это уже сразу минус хостинг, здравствуй вас. По поводу инъекции. Параметры не были забинжены? >>48646 Приду домой пофикшу, или скорее всего завтра.
>>48630 > Почему же? Потому что можно сделать один запрос в стиле «получить все посты, чей номер больше X», где X — номер последнего поста в треде. Получишь тот же результат, только на порядок проще. >>48635 > Но ведь это уже значит, что базовая совместимость есть. А именно она нужна для клиентов. Откуда ты знаешь, какая совместимость есть? Откуда ты знаешь, что совместимость — базовая, а не почти нулевая? > Правильно, это пример, как раз показывающий то, что большинство старается сохранять совместимость. Нет, он этого не показывает. На самом деле, он вообще ничего не показывает. > Его создание в javascript на порядок сложнее. Я тебе по секрету скажу, на чистом javascript всё достаточно сложно. А вот с jquery — в одну строчку. > в том числе содержащих массивы Опять же, давай конкретно, где такое нужно, а не высасывать из пальца. > когда и туда и сюда идут данные в одном и том же формате В общем-то нет. Веб так не работает. > Почему нет? Излишняя сложность ради сложности. > Это просто один метод на совершенно конкретный случай и больше ни на какой. Т.е., никакой реюзабельности и расширяемости. А больше случаев нет, некуда расширять. К тому же ты жертвуешь многим: 1. Нужно 2 запроса к серверу. 2. Более сложный запрос к бд. Не знаю, как сильно второе повлияет на производительность, но селект будет гораздо сложнее. Если раньше ты просто делал select ... where id > 1488, то теперь это будет where id in (1489, 1493, ...) Нашёл код дашачана для курисачика, буду разбираться с проблемой с капчей и минусами в избранном.
>>48674 > Нашёл код дашачана для курисачика, буду разбираться с проблемой с капчей и минусами в избранном. Я, кажется, понял в чём дело. Дело в запросе последних 50 постов в треде (который XXXXX+50.html), если постов меньше, пишет «Слишком мало постов в треде» с кодом 200. А раньше, когда были статические страницы, сервер отдавал 404 т.к. не находил такого файла. Надо сделать, чтобы 404 отдавал как и раньше. Или, как вариант, чтобы выдавал имеющиеся посты, даже если их меньше 50.
И ещё баг нашёл. Запросы вида https://kurisa.ch/read.php?b=sg&t=48357&p=48674&single отдают пост с номером [1]. Если с доски развернуть пост, то его номер заменяется на [1], что не очень красиво. Запрос можно не модифицировать, а вот скриптом сохранить и восстановить номер — можно. Но это мелочь уже, конечно.
А поиск теперь вообще не работает что ли?
>>48688 Что-то лол. И правда не работает. Изи способ избавиться от инъекций. Где-то я такое уже видел.
«Опаньки.» Вдруг обнаружил, что при некоторых обстоятельствах при предпросмотре с другого треда может отвалиться карта ответов. Пока причины неизвестны. Но баг неплохо воспроизводится, если «погулять» по переходам цитат на примере этого поста > >>43032 Если в нём навести на цитату (я испытывал на >>/sg/42824 ), от неё ещё цитату, (We need to go deeper!), а там уже беспорядочно открывать/закрывать вложенные «наводки по цитатам», пока не обнаруживаем, что все карты ответов на всплывающих постах отвалились. Не сильно мажорный баг, я бы сказал. Но, возможно, сможет что-то сказать о внутренностях клиента. Может, это даже поможет что-то решить. На самом деле не верю.
>>48635 >А в теории, в gif можно делать анимированные превьюшки (и такой реквест уже был). Пожалуйста, не надо. Нужно просмотреть гифку — в полном её формате, и по клику. Автовоспроизведение сделает калейдоскоп вместо страницы. А нужно текст читать. >Я вообще до начала копаний с курисабой с веб-разработкой был знаком весьма поверхностно. Ого, даже так. Молодец, что запилил столько всего. >Это надо брать, не знаю, отпуск на месяц, садиться и переписывать это всё. Сейчас будет звучать речь как саботаж, но: лучше распланируй отпуск на что-то здоровское. Такой вот короткий совет. Походы, встречи со старыми друзьями (если они друзья), поездка в горы/море. Курисач пилить нужно. Но и самому жить тоже. Твой темп разработки, мне кажется, и так очень высок. Да, «придём к коммунизму» так мы не совсем скоро. Но и сейчас уже довольно хорошо. >Так и сделаю, и кто хочет — может работать через GET, кто хочет — через POST. Сервером это делается в пару строк. Да и уже сколько лет подряд в PHP есть унифицированный «$_REQUEST». Мне кажется, тут даже думать не нужно. >перейти на PHP 7 А, так вот что это было. Сервер обновили.>>48674 >Я тебе по секрету скажу, на чистом javascript всё достаточно сложно. А вот с jquery — в одну строчку. А ты так же быстро и в одну строчку успел приравнять своё мнение к потолку подземелья. Ну как так. >В общем-то нет. Веб так не работает. И опять-снова. Да какая разница, как он работает обычно или у кого-то там? >Нужно 2 запроса к серверу. Это в первую очередь. Все адекватные люди стараются минимизировать количество установок соединений, т.к. это накладно. А особенно на https.>>48695 >Что-то лол. И правда не работает. А, так вот чего он мне 404 выдал. Я думал, он результат не нешёл.
>>48718 > Я думал, он результат не нешёл. Так он на любой запрос выдаёт, что ничего не найдено.
>>48711 На самом деле, да. Сталкивалась с таким багом уже не раз. Немножко раздражает
>>48718 > А ты так же быстро и в одну строчку успел приравнять своё мнение к потолку подземелья. Ну как так. Это не моё мнение. Обычный ajax на чистом javascript делается через xhr, да ещё данные кодировать надо вручную. А на jquery — $.post. > Да какая разница, как он работает обычно или у кого-то там? Вебу много лет, программированию — тем более. Если ты что-то делаешь не как обычно и как принято, скорее всего ты делаешь говно. Надо обосновывать выбор, а не делать как хочется. Даже если ты думаешь, что твой велосипед получится красивым, не факт, что это реально будет так. > Все адекватные люди стараются минимизировать количество установок соединений, т.к. это накладно. А особенно на https. 2 последовательных запроса, скорее всего, выполнятся на одном соединении.
>>48674 >можно сделать один запрос в стиле «получить все посты, чей номер больше X», где X — номер последнего поста в треде А как же удаленные посты? >Если раньше ты просто делал select ... where id > 1488, то теперь это будет where id in (1489, 1493, ...) Ну, во-первых, select ... where id > 1488 and op_post = 1137; ты забыл второе условие. А во-вторых, стоит проверить скорость выполнения и того и другого запроса, мне интересно, что быстрее.
>>48752 > А как же удаленные посты? Это не столь важная информация, я бы даже сказал наоборот, полезно, что посты не будут удаляться при автообновлении. Но если очень нужно — можно первым запросом получить посты после Х, а вторым запросом — все номера постов, после чего удалить на странице посты не из списка. Это гораздо лучше, чем отбирать номера постов. > ты забыл второе условие. Я хотел акцентировать внимание на совсем другое. Если уйти в строгости, то ты ещё и board == 'sg' and not deleted забыла а может что-то ещё, ведь движок сильно изменился, но дело-то не в этом. > А во-вторых, стоит проверить скорость выполнения и того и другого запроса, мне интересно, что быстрее. Пускай Хомура придёт, займётся, тоже интересно.
>>48751 >Обычный ajax на чистом javascript делается через xhr, да ещё данные кодировать надо вручную. А на jquery — $.post. formdata уже давно есть. Пользуйтесь им. А насчет jquery, уже много где она не нужна. На борде точно. >>48752 >А как же удаленные посты? В кусабе посты только помечаются как удаленные, аля deleted_at, можно их тоже запрашивать(хотя бы с пустой моделью). Суть ведь чтобы пометить их как удаленные, а не убрать из дерева. Да, потестил микучан из гита — работает. Просто соберите из репы или ждите релиза мику. Могу сделать билд если кому надо.
Хомура-чан, поиск теперь из принципа работать не будет?
>>48755 >полезно, что посты не будут удаляться при автообновлении А они и не будут — просто в клиенте помечать их как удаленные. Как куклоскрипт. >можно первым запросом получить посты после Х, а вторым запросом — все номера постов И чем же это лучше-то? Тут вообще получается два запроса. >board == 'sg' Неужели таблица одна на все доски? >>48802 >хотя бы с пустой моделью Извини, не поняла. Что за модель? >Суть ведь чтобы пометить их как удаленные Это уже вопрос клиентского приложения, что с ними делать. >>48806 Не волнуйся, у Хомуры и так много дел, когда освободится — починит. Не надо торопить.
На самом деле QML довольно годная штука, хоть я и ловлю с нее тонны боли, когда наступаю на грабли из-за непонимания. Нет, приложение не делает запрос, там пока вручную сделанная «заглушка».
>>48809 > И чем же это лучше-то? Тут вообще получается два запроса. В исходном варианте их тоже два. Причём запрос списка постов неоправданно сложный, в отличии от моего варианта.
>>48646 Ок, записал, спасибо, Ханако. >>48671 >Параметры не были забинжены? Ну я забыл обернуть запрос в $tc_db->qstr();. >Приду домой пофикшу, или скорее всего завтра. О, это было бы отлично. Хотя бы узнать причину. >>48674 >Получишь тот же результат, только на порядок проще. Но менее универсально. Что, например, если клиент захочет грузить тред не целиком, а только видимую часть? В любом случае, расширить потом можно. Главное — не закладывать сейчас нерасширяемые решения. >Откуда ты знаешь, какая совместимость есть? Откуда ты знаешь, что совместимость — базовая, а не почти нулевая? Если её достаточно, чтобы сторонный софт (кукла, мобильные клиенты) понимали пришедшие им данные — значит, она уже достаточная (в части чтения разметки, я имею в виду). >Нет, он этого не показывает. На самом деле, он вообще ничего не показывает. Ну, я не знаю, как на такое отвечать. Есть мнение, что мы просто не понимаем друг друга. >А вот с jquery — в одну строчку. Show me the magic! По запросу «jquery object to form data» нашел только про обратное преобразование. >Опять же, давай конкретно, где такое нужно, а не высасывать из пальца. Вот я просто тебе скажу такую вещь. Я часто на работе, когда делаю очередную материнку или модуль, стараюсь запилить на них побольше возможностей. Поставить все возможные разъёмы (которые не нужны на данном этапе — просто не покупать и не запаивать), вывести побольше тестпоинтов, сделать хороший запас по питанию, большие диапазоны регулировок, поставить управляемые по PMBus источники и всё такое. И уже не один раз получалось так: 1. Я запиливаю функционал в плату 2. Начальник говорит: чёт много всего, выпили %фичанейм% 3. Я говорю «угу» и не выпиливаю 4. Плата отправляется в производство, на неё делают КД, получают литеру, всё такое 5. Потом звонит другой начальник и говорит: «слушай, а %фичанейм% в твоей плате нет, да? Черт, придется заново разрабатывать похожую плату» 6. Я говорю: «кухихи, нет, есть, я её не выпилил» 7. Другой начальник говорит «о, круто!» и мы имеем новый комплекс с нужной функциональностью через 2 месяца, а не через полгода. 8. ????? 9. PROFIT!! Поэтому так: я тебе не скажу на 100%, где точно будет использоваться такой функционал; может, не будет вообще, а может, наоборот, пригодится. Придумывать примеры применения можно сколько угодно, и мы не угадаем, какой точно будет и будет ли вообще. Но отказываться от возможности запилить функционал, который может потребоваться, я не хочу. >В общем-то нет. Веб так не работает. Расшифруй, пожалуйста. Чем это плохо? > Почему нет? Излишняя сложность ради сложности. > Это просто один метод на совершенно конкретный случай и больше ни на какой. Т.е., никакой реюзабельности и расширяемости. >Нужно 2 запроса к серверу. Отлично, можно запилить два запроса. Настраиваемый (для двухзапросной схемы) и ненастраиваемый (для однозапросной). Проблем в этом нет. >Если раньше ты просто делал select ... where id > 1488, то теперь это будет where id in (1489, 1493, ...) Да, если есть индекс по id (а он есть), то запрос со сравнением выполнился бы быстрее. Однако, там всё равно есть условие IS_DELETED = 0, поэтому ему в любом случае придётся проходить все выбранные строчки. >Нашёл код дашачана для курисачика, буду разбираться с проблемой с капчей и минусами в избранном. О, спасибо, будет хорошо, если удастся накопать причину. >>48678 >Надо сделать, чтобы 404 отдавал как и раньше. Или, как вариант, чтобы выдавал имеющиеся посты, даже если их меньше 50. Хорошо. Как будет лучше? >>48679 Уже есть в списке. Буду править. >>48688 >>48695 >>48806 >>48718 >>48720 >>48806 Упс! Да, чёт поиск сломался. Скоро поправлю, а пока просто оборачивайте то, что ищете, в значки процента, т.е. теперь вместо слово надо писать %слово%. >>48711 Тоже есть в списке, и я даже примерно знаю, из-за чего это. Тоже буду править. >>48718 >Автовоспроизведение сделает калейдоскоп вместо страницы. Да, ты прав, и я тоже так считаю, поэтому у меня специально написано: «выключенные по дефолту». >лучше распланируй отпуск на что-то здоровское. Ну само собой, говоря, что «надо так делать», я не подразумевал, что я действительно так буду делать, кухихи. В отпуске я лучше школьников электронике поучу в ЛМШ и просто отлично проведу с ними время, лол, чем буду сидеть переписывать курисабу простите меня, дорогие курисачане же. =) Но спасибо за заботу, Рейму. =) >Сервером это делается в пару строк. Да и уже сколько лет подряд в PHP есть унифицированный «$_REQUEST». Вот и я о том же. Ладно бы это было сложно, но ведь есть уже предназначенный именно для этого метод. >Все адекватные люди стараются минимизировать количество установок соединений, т.к. это накладно. А особенно на https. Ну тут два запроса — рациональная, имхо, цена гибкости. Можно сделать и однозапросную схему — не проблема же. >>48751 >да ещё данные кодировать надо вручную. Разве в FormData надо что-то кодировать? >Если ты что-то делаешь не как обычно и как принято, скорее всего ты делаешь говно. Пример: много ли ресурсов используют PUT и DELETE для добавления или удаления чего-нибудь — вместо типичного «POST на любую модификацию»? >Надо обосновывать выбор, а не делать как хочется. Я ж, вроде, обосновал. >>48755 >полезно, что посты не будут удаляться при автообновлении. Не называние ли это бага фичей? >Но если очень нужно — можно первым запросом получить посты после Х, а вторым запросом — все номера постов, после чего удалить на странице посты не из списка. Это гораздо лучше, чем отбирать номера постов. Всё равно два запроса, но такой вариант гораздо костыльнее. И всё ради чего? Чтобы не юзать POST? >Пускай Хомура придёт, займётся, тоже интересно. На нашем объёме данных оба запроса будут выполняться исчезающе малое количество времени. >>48809 >Неужели таблица одна на все доски? Конечно, одна, ибо одна структура данных. >>48814 >Причём запрос списка постов неоправданно сложный Как раз-таки нет. Ты перекладываешь сложность на клиент, хотя «выдать посты по списку» — вполне логичная серверная задача, в отличие от костыльного клиентского аналога «запросить всё, а потом вычленять оттуда то, что нужно».
$tc_db->qstr();
IS_DELETED = 0
слово
%слово%
Хомушка, Вам нинадоело бырократией занимацца? Тем более, што это лжа фсё, ага. Сколько небыло просьб в этой канцелярии, а картинку с видевой так и ничиво же, например.
Картинка с видевой не нужна. Пост будет выглядеть коряво. Я категорически против.
>>48818 Да. Нужна возможность прикрепления 5 картинок и видео. Будет в самый раз.
>>48818 Ссылка с раскрыть прям в посте даж, как, например у Юлички и на Двощах? Штож корявого-то, глупый?
>>48821 Завались, жирный.
>>48824 Я серьёзно. Одной пикчи мало.
>>48815 > Но менее универсально. Что, например, если клиент захочет грузить тред не целиком, а только видимую часть? Какую такую видимую часть? > В любом случае, расширить потом можно. Главное — не закладывать сейчас нерасширяемые решения. Можно просто потом добавить запрос на получение нужных постов параллельно к запросу на получение после определённого номера, хуже не станет. И, я уверен, это «потом» уже никогда не наступит или просто нигде не понадобится. > Если её достаточно, чтобы сторонный софт (кукла, мобильные клиенты) понимали пришедшие им данные — значит, она уже достаточная (в части чтения разметки, я имею в виду). Когда вы только ввели отображение номеров постов (в квадратных скобках), вы прописали ему класс postername. Дашачан из-за этого вместо имён постов показывал эти самые числа. Я тогда сообщил об этом разработчику, чтобы он исправил, но, тем не менее, такая небольшая оплошность — и уже что-то перестаёт работать как надо. Или, если помнишь, была проблема, когда ты ввёл новую карту ответов и вынес её в текст поста. Я тогда громко ругался и просил убрать их наружу, иначе эти ответы отображались как текст сообщения. Достаточная совместимость — миф: никогда не угадаешь, где можно накосячить. Не верю я в твои универсальные парсеры для каждого движка. > Ну, я не знаю, как на такое отвечать. Не обязательно отвечать. Во-первых, твой пример сохраняет совместимость для стилей, а не для парсеров, а во-вторых это единичный случай. Нужно доказательство всеобщности, а не существования, понимаешь? > Show me the magic! $.post. Передёшь в него JS объект — он сам из него формирует данные. > Но отказываться от возможности запилить функционал, который может потребоваться, я не хочу. Ради этого ты собираешься вводить свои велосипеды вопреки здравому смыслу. Можешь пофантазировать ещё дальше и тебе уже JSON не будет хватать. За всю жизнь до этого я не встречал сайтов, которые передают массив в массиве и которым вообще такое необходимо. Не надо совсем уж ерунды придумывать. > Расшифруй, пожалуйста. Чем это плохо? В вебе ты делаешь запрос, даже не обязательно пост, а в ответ ты можешь получить текст, картинку, аудио, видео, и т.д. Нет никакой необходимости формат входных и выходных данных делать идентичным, это абсолютно лишнее. > Отлично, можно запилить два запроса. Настраиваемый (для двухзапросной схемы) и ненастраиваемый (для однозапросной). Проблем в этом нет. Проблема в том, что ты плодишь сущности. Даже в двухзапросной системе нет необходимости в настраиваемом запросе. > Хорошо. Как будет лучше? Если сделать как раньше (404), то точно всё будет работать. Если же отдавать посты всегда, то я уже не уверен. Лучше всё таки первый вариант. > Разве в FormData надо что-то кодировать? Любой пост-запрос с содержимым надо во что-то кодировать. Ты строку в send передаёшь, а эту строку надо сформировать так или иначе. > Пример: много ли ресурсов используют PUT и DELETE для добавления или удаления чего-нибудь — вместо типичного «POST на любую модификацию»? Много. Не понимаю, к чему это. > Всё равно два запроса, но такой вариант гораздо костыльнее. И всё ради чего? Чтобы не юзать POST? Моя схема: 1. Запросить все номера постов. 2. Убрать удалённые посты. 3. Запросить новые посты после последнего поста. Твоя схема: 1. Запросить все номера постов. 2. Убрать удалённые посты. 3. Запросить все посты, которых нет на странице и есть в списке постов из первого запроса. Тебе как на клиенте, так и на сервере придётся выполнить больше разных вычислений. Надо как сформировать массив номеров новых постов, так и SQL-запрос с этим самым where id in (...). В моём же случае вообще ничего делать не надо. И ты ещё мой вариант костылём называешь? > Я ж, вроде, обосновал. «Может быть понадобится» — не обоснование.
>>48815 >И уже не один раз получалось так Ну и дела. Это же хардварь, и за каждую фичу нужно платить покупкой деталей. (Или ты оставляешь площадки?) Кстати, тут же вопрос: SPI может потянуть 10Мбит/сек на коротких дистанциях? >Ну тут два запроса — рациональная, имхо, цена гибкости. Можно сделать и однозапросную схему — не проблема же. Ну можно записывать историю последних изменений. Автообновление, всё же, штука активная. Да и работаем уже с динамикой-динамикой. >Пример: много ли ресурсов используют PUT и DELETE для добавления или удаления чего-нибудь — вместо типичного «POST на любую модификацию»? Да уж, ну и пример. Я бы не стал полагаться на них уже не только из сомнений в поддержке клиентами, так даже из сомнений поддержки сервером. Эта модель просто умерла в какое-то время. >Не называние ли это бага фичей? Нет, Хомура. Если бы я писал клиент, обязательно бы оставлял удалённые посты. Потому, что клиент уже по праву получил эту информацию. А потом по команде сервера должен удалять то, что пользователь желал бы прочесть. Неправильно это. Ладно ещё, если сервер просто не прислал. Тогда и говорить нечего. Но вот так действовать.. это уже неправильный клиент получается.
>>48832 >Какую такую видимую часть? Предположу, что имелась ввиду загрузка только малой части треда с последующей автоподгрузкой при надобности. >Достаточная совместимость — миф: никогда не угадаешь, где можно накосячить. Да, это очень глупо, когда каждый для себя определил границы API. Было бы куда лучше, если бы все цеплялись за одни и те же ключевые части. Но и не так много проектов работает с курисабой. Вот конкретно их функционирование и нужно поддерживать. >Ради этого ты собираешься вводить свои велосипеды вопреки здравому смыслу. Какие велосипеды? Что ты несёшь? Мы вообще-то новый движок пилим. >За всю жизнь до этого я не встречал сайтов, которые передают массив в массиве и которым вообще такое необходимо. Это да. >1. Запросить все номера постов. 2. Убрать удалённые посты. 3. Запросить новые посты после последнего поста. Твоя схема: 1. Запросить все номера постов. 2. Убрать удалённые посты. 3. Запросить все посты, которых нет на странице и есть в списке постов из первого запроса. А я вообще сижу и не понимаю, почему бы серверу не вести историю. Так он бы сам мог ответить на вопрос, что нужно клиенту. Там эту историю-то на больше 5 изменений за раз едва ли когда потребуется читать. Обновления же каждые 20 сек. Зато пересылаются все номера постов. Кстати, твой вариант был предыдущим. Мы так хорошо полетели на удалённых постах. Ну хорошо, тогда нужно было реализовать всё аккуратней, и на этом всё. Сейчас же на каждое обновление пересылается данных массив, что даже GET не поместится. Да и, объективно говоря, карта ответов из других тредов под вопросом. С историей последних изменений треда полегче будет ничего не упустить.
>>48817 У меня все ходы записаны, будет тебе картинка с видевой, это наступит скоро, надо только подождать. =) Ладно, постараюсь сделать побыстрей, а то негоже столько времени держать реквест в major-е. >>48818 Для тебя ничего не изменится — если ты, конечно, не залезешь в настройки и не поставишь галочку типа «разворачивать первое видео с ютуба в посте». >>48828 Чому бы не писать несколько постов, или не прикреплять пикчи ссылками? Если каждый будет лепить по десятку пикч к посту — то мы так очень быстро вылетим за наши 15 гигов. >>48832 >Какую такую видимую часть? Например, маленький экранчик, на нем видно, к примеру, три поста. Скроллишь пальцем вверх-вниз — подгружаются другие. >Можно просто потом добавить запрос на получение нужных постов параллельно к запросу на получение после определённого номера, хуже не станет. А я о чём говорю? Два варианта запросов, главное — есть и «быстрый», и «универсальный». >И, я уверен, это «потом» уже никогда не наступит или просто нигде не понадобится. Это невозможно гарантировать (как и обратное). >такая небольшая оплошность — и уже что-то перестаёт работать как надо. Само собой, для каждой борды нужны свои правки — и чем борда дальше от кусабы, тем больше. Но основа всё равно остаётся одна, и парсеры отличаются лишь немного, условно говоря, это не разные парсеры, а один и тот же с небольшой кастомизацией под конкретную борду. К примеру, никто не додумывался, например, посты лепить в, например, голый blockquote вместо td, или систему адресации постов типа '#reply12345' заменять на нечто своё, или стили перелопачивать до неузнаваемости. >Нужно доказательство всеобщности, а не существования, понимаешь? Теперь понимаю. Возможно, я слишком категорично сказал, но я говорил о тенденции, а не о непреложном правиле. >$.post. Передёшь в него JS объект — он сам из него формирует данные. Спасибо, буду знать. >Ради этого ты собираешься вводить свои велосипеды вопреки здравому смыслу. Да где же тут вопреки здравому смыслу-то? Вон, для обновления треда мне, к примеру, уже требуется передавать список постов (впрочем, я всё обновление делаю одним запросом). >Нет никакой необходимости формат входных и выходных данных делать идентичным, это абсолютно лишнее. Ну, необходимости — конечно же, нет. А когда входные и выходные данные представляют собой объекты — то почему бы их и туда, и сюда не передавать в одном формате? >Проблема в том, что ты плодишь сущности. Как раз-таки, без упрощенной схемы сущность (операция) одна: получить перечисленные посты. Понимаешь, не сервер должен думать, что с этим делать, это задача клиента. Серверу сказали «дай мне эти посты» — он дал. Упрощённая схема здесь исключительно для облегчения этой операции в наиболее часто используемом случае (получение новых постов). >Если сделать как раньше (404), то точно всё будет работать. Ок, сделаю тогда так. >Любой пост-запрос с содержимым надо во что-то кодировать. Погоди, а разве это делается не прозрачно для пользователя через FormData::append()? >Много. Не понимаю, к чему это. Я, если честно, ни разу не видел в выводе wireshark-а PUT или DELETE. Исключительно GET и POST. Это к тому, что не всё «в вебе» используется так, как задумано. >И ты ещё мой вариант костылём называешь? Ещё раз говорю: твой вариант предназначен для абсолютно конкретного случая (обновление треда) и более ни для какого. Естественно, именно в этом случае он работает лучше (а в других — не работает вообще). И я не говорю, что он не нужен, просто его наличие не отменяет наличия универсального интерфейса. >«Может быть понадобится» — не обоснование. Тем не менее, оно часто работает. >>48833 >Это же хардварь, и за каждую фичу нужно платить покупкой деталей. (Или ты оставляешь площадки?) Ну, если туда ставится редкая микросхема/соединитель — то да, помечаю их в схеме как незапаиваемые, а в спецификации и перечне элементов как «наличие определяется договором поставки, если не оговорено особо — отсутствует». Но в общем и целом над мыслью поставить лишний разъём-гребёнку со стоимостью в 10 рублей, резисторы со стоимостью меньше рубля штука или там микросхему стоимостью рублей в 20-50 (I2C EEPROM, например) даже задумываться не стоит — на фоне общей стоимости модуля в сотни тысяч рублей это копейки, а профит (хотя бы если его пересчитать в оплату человеко-часов) значительный. >Кстати, тут же вопрос: SPI может потянуть 10Мбит/сек на коротких дистанциях? Да, на 12 МГц мы его пускали. >Эта модель просто умерла в какое-то время. Вот и я о том же. Не всё «в вебе» сделано идеально, есть рудименты, есть просто неудобные или непродуманные вещи. >А потом по команде сервера должен удалять то, что пользователь желал бы прочесть. Я тебя понимаю, да (и сам раньше так думал). Но в целом, вот лично здесь — я старался привести ситуацию к тому, чтобы тред после обновления выглядел так же, как будто страницу целиком перезагрузили. Классическая ситуация: человек отправил пост, увидел в нем ошибку и переотправил его. Итог: если не удалять, то у читающего будут два поста: старый и новый. Некрасиво как-то, как по мне. В конце концов, если человек не хочет, чтобы у него удалялись (как и добавлялись) посты, он просто не будет обновлять тред, верно? >>48834 >Предположу, что имелась ввиду загрузка только малой части треда с последующей автоподгрузкой при надобности. Да. >Мы вообще-то новый движок пилим. Пока что только API. Хотя, если кто-то уже активно пилит движок, то я буду всячески благодарен такому герою =) >А я вообще сижу и не понимаю, почему бы серверу не вести историю. Это сложно (к примеру, я не представляю, как сервер будет отслеживать хотя бы тысячу одновременно подключенных клиентов) и очень чревато рассинхроном.
FormData::append()
>>48814 >Причём запрос списка постов неоправданно сложный, в отличии от моего варианта. Чем же сложен запрос списка по id? Простейший запрос, учитывая что id индексируется и уникально, то время выполнения линейно. >>48832 >Тебе как на клиенте, так и на сервере придётся выполнить больше разных вычислений. Сервер в этом случае ВООБЩЕ практически никаких вычислений не выполняет — он выполняет два запроса, в одном отдает id постов из треда, во-втором посты по id. А вот в твоем случае база вынуждена пробегать все посты после того, который ты отправишь как последний в треде, и смотреть, в каком треде эти посты находятся. >>48834 >почему бы серверу не вести историю. Для каждого клиента? А каждому клиенту история для каждого треда? Да ддосер с большим набором прокси все тут ушатает. >Обновления же каждые 20 сек. У меня автообновления отключены — уже не каждые 20 сек. >>48846 >Хотя, если кто-то уже активно пилит движок, Какой-то анон отписывался в прошлом треде, что пилит.
>>48846 >Это сложно и очень чревато рассинхроном. Разумеется, это нужно реализовывать отдельно. Но создать таблицу, и вписывать туда «тред 1234: в посте 2345 добавлен ответ в карту, время 101; тред 9999: добавлен пост 10000, время 102; тред 9999: добавлен пост 10001, время 103» Пользователь при надобности отсылает номер треда и время. Сервер уже отправляет (проверив на дубликаты, разве что. Ну или тупо отправив несколько раз одно и то же, всяко случай редкий). Можно ещё дополнять вида не помечать «карта ответов» или «пост», а сделать колонку «тип» и сразу дописывать в карту ответов только 1 добавление или 1 удаление. (хотя это уже похоже на мелочи. Хотя и сэкономим ещё чуть больше) Если сервер ответить не может (сообщение слишком давнее), то можно и обновить клиенту весь тред. Т.к. это уже не 20 секунд, и даже не час прошёл. >к примеру, я не представляю, как сервер будет отслеживать хотя бы тысячу одновременно подключенных клиентов. Эти же способом. Не серверу же следить за тем, на каком моменте какой клиент остановился, а клиенту.
>>48851 >Чем же сложен запрос списка по id? Простейший запрос, учитывая что id индексируется и уникально, то время выполнения линейно. Очень условно линейно, основная нагрузка тут О(1). Но вот только что делать, если изменение произошло? Кидать второй запрос, или загружать тред целиком? Более того, так уже происходило сравнение внутри клиента ещё во времена статики. Приводило это к тому, что удалёние постов не фиксировалось. Сразу подскажу, что нужно передавать последний id И количество постов. Учитывая, что добавить пост внутрь других нельзя, то этих данных уже будет достаточно. Но второй запрос при изменении делать нужно. Или весь тред пересылать. Что первое, что второе не так уж здорово.
>>48856 >Но вот только что делать, если изменение произошло? >Кидать второй запрос, или загружать тред целиком? Какой такой второй запрос? Запрос постов по id это и есть ВТОРОЙ запрос. Первый — это запрос всех постов в треде, причем благодаря этому фиксируются удаление. А потом клиент запрашивает только то, чего у него нет.
>>48857 >это запрос всех постов в треде запрос всех НОМЕРОВ постов Фикс.
>>48834> Предположу, что имелась ввиду загрузка только малой части треда с последующей автоподгрузкой при надобности.Последние посты только в голову приходят, а как это сделать — я уже говорил.> Какие велосипеды? Что ты несёшь?Я о JSON в теле запроса вместо привычных способов кодирования.> Кстати, твой вариант был предыдущим. Мы так хорошо полетели на удалённых постах.Если дополнительно запрашивать список постов, то не полетит. Этого нет в предыдущем варианте.> С историей последних изменений треда полегче будет ничего не упустить.Я, кажется, представляю, о чём ты говоришь. Идея прикольная, но я бы забил и просто весь тред грузил чтобы уж точно всё предусмотреть. Больно много возни будет.>>48846> Например, маленький экранчик, на нем видно, к примеру, три поста. Скроллишь пальцем вверх-вниз — подгружаются другие.Вообще не востребованно. Маленький экранчик будет просто грузить все посты. Если бы это было востребованно, давно бы это сделали, но ты первый это придумал.> Это невозможно гарантировать (как и обратное).Учитывая то, что никому кроме тебя такие запросы не нужны, вполне можно.> Ну, необходимости — конечно же, нет. А когда входные и выходные данные представляют собой объекты — то почему бы их и туда, и сюда не передавать в одном формате?Потому что это велосипед и так почти никто не делает. Если нет необходимости — лучше не усложнять, только проще будет.> Как раз-таки, без упрощенной схемы сущность (операция) одна: получить перечисленные посты. Понимаешь, не сервер должен думать, что с этим делать, это задача клиента.А почему не сервер? Ты так за это цепляешься, но у нас конкретная прикладная задача, сервер думает в рамках задачи. И если необходимости получать конкретные посты нет, а её нет, то не надо ничего усложнять.> Погоди, а разве это делается не прозрачно для пользователя через FormData::append()?Я не знаю, что это такое, но в любом случае ты это делаешь.> Это к тому, что не всё «в вебе» используется так, как задумано.Речь не о как задумано, а о как принято. Оказалось, что использовать только гет и пост — удобно.>>48851> Чем же сложен запрос списка по id? Простейший запрос, учитывая что id индексируется и уникально, то время выполнения линейно.Вот >>48832> > Тебе как на клиенте, так и на сервере придётся выполнить больше разных вычислений. Надо как сформировать массив номеров новых постов, так и SQL-запрос с этим самым where id in (...). В моём же случае вообще ничего делать не надо.> Сервер в этом случае ВООБЩЕ практически никаких вычислений не выполняет — он выполняет два запроса, в одном отдает id постов из треда, во-втором посты по id. А вот в твоем случае база вынуждена пробегать все посты после того, который ты отправишь как последний в треде, и смотреть, в каком треде эти посты находятся.Запрос при этом получается проще и, благодаря своей простоте, скорее всего быстрее. В твоём случае база должна побегать все посты и проверять их номер?
>>48863 >Надо как сформировать массив номеров новых постов, так и SQL-запрос с этим самым where id in (...) Массив формирует клиент, а в sql запрос просто передается этот полученный от клиента массив. >В твоём случае база должна побегать все посты и проверять их номер? С чего бы? У нас же индексация по id. >Запрос при этом получается проще Спорим нет? Возьмем крайний случай — предпоследний тред на последней странице и запустим там (виртуально) мой и твой вариант автообновления. Твой вариант — сначала запрос всех номеров постов в треде для проверку на удаленные, потом второй запрос с передачей id 10577 последнего поста — и база должна пробежать 48939-10577 постов чтобы убедится, что среди них нет нового поста в этом треде. Мой вариант — клиент запрашивает список всех постов, сверяет с имеющимся, убеждается, что там нет ничего нового и второй запрос не делает.
>>48940> Массив формирует клиент, а в sql запрос просто передается этот полученный от клиента массив.Из массива нужно сформировать сам селект. Массив сам себя не экранирует и в запрос не вставит.> С чего бы? У нас же индексация по id.Я не знаю, как устроены бд со всеми этими индексациями, но даже Хомура говорит, что скорость одинако мала. Тем более, можно, наверное, индексировать по нескольким столбцами?> Спорим нет? Возьмем крайний случайНастолько крайний, что выполнив такую проверку на клиенте даже в моём случае не придётся делать второй запрос.Но я больше стремлюсь к минимализации работы программисту, нежели компьютеру, тем более если нагрузка почти никакая. Как минимум в этом смысле — да, проще.
>>48854 >Но создать таблицу, и вписывать туда «тред 1234: в посте 2345 добавлен ответ в карту, время 101; тред 9999: добавлен пост 10000, время 102; тред 9999: добавлен пост 10001, время 103» Такое изобретение называется «система контроля версий». Для движка борды это, думаю, оверкилл, но теоретически такая схема возможна. Однако это уже совсем другой порядок размера базы и сложности извлечения из неё инфы. И уж тем более всего лишь ради сокращения сложности клиента, мне кажется, это не очень имеет смысл. Учитывая то, что вычислительная мощность сервера постоянна, а клиентов — растёт с их количеством. >>48856 >Но вот только что делать, если изменение произошло? Кстати, заметь: при автообновлении очень мал счётчик «попаданий» на событие «страница изменилась». >>48856 >>48857 Btw, уже сейчас давно как можно пользоваться json.update.php — в ответ на запрос из списка имеющихся у клиента постов прилетит и список удалённых постов, и html добавленных, и новая карта ответов треда. Это специально для тех, кто желает максимум вместить в один запрос. >>48863 >Я о JSON в теле запроса вместо привычных способов кодирования. Если $.post() имеет подобную функциональность, то я не против. Главное, чтобы при этом на сервере можно было бы легко разобрать то, что он сделал. >давно бы это сделали В мире, где под андроид две читалки для борд, а для IOS — вообще ноль. Угу. >Учитывая то, что никому кроме тебя такие запросы не нужны, вполне можно. Гинто ещё нужны. >но у нас конкретная прикладная задача, сервер думает в рамках задачи. Нет. Запрос к API — это не задача, это инструмент. Одним инструментом можно решать множество задач — важно уметь этим инструментом пользоваться. Например, вот у меня на кухне есть куча разных ножей — для хлеба, яблок, мяса, рыбы от прошлой хозяйки осталось, но когда я решаю, что взять с собой в поход — я беру один универсальный нож, потому что я знаю, что с его помощью я могу решить любую задачу, которую можно решить с помощью ножа. Правда, я до сих пор не могу понять, чем отличаются эти ножи, какой из них какой, и самое главное — какова разница в результате, лол. Так же и с запросом: если я даю возможность передавать параметры как через GET, так и через POST — то с помощью подобной абстракции можно решить даже те задачи, исходные данные для которых не вмещаются в 255 символов. >то не надо ничего усложнять. Писать $_REQUEST вместо $_GET — это усложнять? >Речь не о как задумано, а о как принято. И как же принято? В общем случае да, немодифицирующие запросы к серверу делаются с помощью GET. Но это не железное правило, а так «принято» просто потому, что во многих случаях так проще, когда не нужна функциональность POST. Но когда она нужна — она используется. Тот же контактик сыплет POST-ами при простом скролле ленты или сообщений — просто мама не горюй. >В моём же случае вообще ничего делать не надо. В какой раз уже говорю: если тебе достаточно «простой» функциональности — то и не делай. Я согласен, твоя задача распространена — поэтому я сделаю «упрощённый» вариант для неё. К чему же выпиливать более универсальную функциональность, нужную другим? >>48943 >Из массива нужно сформировать сам селект. Массив сам себя не экранирует и в запрос не вставит. Если не ошибаюсь, это делается автоматизированно (где-то в дебрях read.php надо глянуть). >Хомура говорит, что скорость одинако мала. Что время, затрачиваемое на выполнение запроса одинаково мало.
json.update.php
$.post()
>>48957> Гинто ещё нужны.Ну, на самом деле тоже окажется, что не нужны.> Одним инструментом можно решать множество задач — важно уметь этим инструментом пользоваться.Инструмент для задачи. А задачи таковы, что слишком универсальный инструмент не нужен.> но когда я решаю, что взять с собой в поход — я беру один универсальный нож, потому что я знаю, что с его помощью я могу решить любую задачу, которую можно решить с помощью ножа.У нас тут не поход, а одна лишь резка хлеба. И вот для неё ты решил взять универсальный нож.> Писать $_REQUEST вместо $_GET — это усложнять?Формировать сложный запрос вместо элегантного ии покрывающего все задачи сравнения.> И как же принято?> > application/x-www-form-urlencoded или multipart/form-data> Но когда она нужна — она используется.Вот когда нужна. Прямо очень нужна. Так нужна, что кушать не могу. Велосипедить весело только тому, кто пишет эти велосипеды, да и то во время обучения.> К чему же выпиливать более универсальную функциональность, нужную другим?Я пытаюсь объяснить, что универсальная функциональность тут в принципе не нужна. И даже не выпиливать: апи-то нет, нельзя выпилить то, чего ты ещё не сделал.Ты ни с того ни с сего взялся за абсолютно бесполезную сущность и даже не знаешь, зачем она нужна, мол, зато универсально. Сделай частный упрощённый запрос, а потом, когда время придёт, — общий, если понадобится. Видимо, это будет единственный способ для тебя убедиться, что упрощённый запрос покрывает все задачи.> Что время, затрачиваемое на выполнение запроса одинаково мало.Ага, оговорился, это и имел в виду.
>>48960 >Ну, на самом деле тоже окажется, что не нужны. Ну посмотрим. >А задачи таковы, что слишком универсальный инструмент не нужен. Лучше, когда он есть, чем когда его нет. >И вот для неё ты решил взять универсальный нож. Потому что резать хлеб настойчиво предлагаешь ты, а Гин хочет резать многое другое, вот как-то так. >Формировать сложный запрос Так запрос формирует клиент. Я же только предоставляю ему возможность этот запрос выполнить. >application/x-www-form-urlencoded или multipart/form-data Стоп, мы, вроде как раз про то, что всё получение надо делать GET-ом, или ты уже про что-то другое? Насчёт передачи в формах — это другой разговор, там надо изучать эту тему. Если объект легко передать через форму с помощью $.post и легко на сервере распарсить, то я против ничего не имею. >Прямо очень нужна. Так нужна, что кушать не могу. Контактику вот прямо очень нужен этот POST? >Ты ни с того ни с сего взялся за абсолютно бесполезную сущность и даже не знаешь, зачем она нужна, мол, зато универсально. Начнём с того, что эту сущность сначала попросила Гин, вообще-то. То есть, она уже нужна. Алсо, проще будет оба одновременно сделать, чем по отдельности.
$.post
Чет вы как-то все слишком усложняете. Будь на сервере вебсокеты нужно было бы просто рассылать посты субскрайберам, то же самое и с удалением, достаточно уведомить всех. Осталось только взять впс.
>>48943 >Массив сам себя не экранирует и в запрос не вставит. Хочешь сказать, что это долго? >>48957 >В мире, где под андроид две читалки для борд, а для IOS — вообще ноль. Здесь должен был быть ехидный коммент про пользователей iOS, но я промолчу. Потому что под мою OS тоже нет. >Правда, я до сих пор не могу понять, чем отличаются эти ножи Подозреваю, что ничем, просто здесь так заведено, и нож для мяса/рыбы не желательно лишний раз использовать для всякой мелочи вроде хлеба, чтобы не затуплять без необходимости. >>48960 >Формировать сложный запрос вместо элегантного ии покрывающего все задачи сравнения. Угу, элегантность сравнения только в том, что там букв в запросе меньше, лол. >Ты ни с того ни с сего взялся за абсолютно бесполезную сущность Не только он, а мы вдвоем. >>48975 Если бы еще производительности на них хватало...
>>48977 А тут не нужен уж какой-то сильный сервер, тем более соединений немного. В принципе даже реализация на пхп сгодится, а проблем решится куча.
>>48971> Стоп, мы, вроде как раз про то, что всё получение надо делать GET-ом, или ты уже про что-то другое?Мы о том, что ты хочешь в JSON данные предавать. А потом немного отошли и начали примеры из веба давать.> Контактику вот прямо очень нужен этот POST?Не знаю, я не смотрел код контактика и что он там отправляет.>>48977> Хочешь сказать, что это долго?Для программиста это дольше, больше кода.> Угу, элегантность сравнения только в том, что там букв в запросе меньше, лол.Ну да. Нет этого глупого массива из сколь угодно длинного набора номеров.> Не только он, а мы вдвоем.Да как-то выходит, что тебе она тоже не нужна, потому что частного запроса тебе тоже хватает, а единственная причина, по которой ты его хочешь использовать, — мнимая производительность сервера, которой на самом деле нет и которая клиента не должна беспокоить.
>>48981 >Для программиста это дольше, больше кода. Не знаю как в php, в питоне это все легло бы на sqlalchemy, а кода было бы практически одинаково. Впрочем, программист серверной части у нас Хомура — ей и решать. >Нет этого глупого массива из сколь угодно длинного набора номеров. Ты уперся лбом в то, что тебе, видите ли, не нравится этот массив, и пропагандируешь свой частный способ. >что тебе она тоже не нужна То есть ты будешь за меня решать, что мне нужно? >которая клиента не должна беспокоить. Да она и не будет — клиенту не будет никакой разницы, как его приложение там работает внутри, если оно новые посты подгружает.
>>48984> Ты уперся лбом в то, что тебе, видите ли, не нравится этот массив, и пропагандируешь свой частный способ.Я ценю красоту и простоту кода.> То есть ты будешь за меня решать, что мне нужно?Расскажи тогда, где тебе это нужно, когда тебе частного запроса не хватает? Я так решил потому что ты рассказала, что тебе нужно, и всё это решается частным запросом. Быть может, нужно что-то ещё, но я об этом уже не знаю, просто придумать ещё что-то не получается.> Да она и не будет — клиенту не будет никакой разницы, как его приложение там работает внутри, если оно новые посты подгружает.Клиент это само приложение. Я имел в виду что тебе, как разработчику, должно быть всё равно, используется ли на сервере индексирование при каком-то запросе или нет.
>>48975 Мы же вроде уже решили, что вебсокеты для нас — это слишком, ибо всё решается простыми средствами, а выслушивать «у меня Курисачик перестал открываться, потому что админы режут всё, кроме 80 (и 443) порта» я не хочу. >>48977 >просто здесь так заведено Вот да. Я называю такие причины терминальными — потому что на них и возражать как-то невозможно, и соответствующую тему обсуждения можно считать исчерпанной, лол. >и нож для мяса/рыбы не желательно лишний раз использовать для всякой мелочи вроде хлеба Ну, это нормальное обоснование. Впрочем, в нашем случае мы считаем, что ножи (запросы) можно использовать бесконечно, да, так что тут пример не очень точный. >>48981 >Мы о том, что ты хочешь в JSON данные предавать. Я не против любого другого настолько же универсального формата. Передавать в виде формы — не вопрос, если это легко парсится на стороне сервера (да) и легко упаковывается на стороне клиента (javascript с jquery — видимо, да; то, на чём пишет Гин — не знаю, надо смотреть). >Для программиста это дольше, больше кода. Кода там ненамного больше по сравнению с предоставляемыми им возможностями. >>48987 >и всё это решается частным запросом. Ещё раз: твоим запросом не решается, например, скрытие удалённых постов. Короче, я уже вижу, что к какому-то консенсусу мы не придём. Есть два подхода со своими плюсами и минусами: «сервер — инструмент» (когда бизнес-логика в клиенте, а сервер просто предоставляет всю возможную функциональность) и «сервер — решальшик задач» (когда есть строго определённый круг задач и под каждую задачу свой, сугубо специфический запрос к серверу, который выдаёт всё в наиболее типичном для задачи формате). Пример первого — Linux, пример второго — iOS. И вот это «объяснить пользователю, что ему нужно совсем не то, что он хочет, а то, что может предоставить интерфейс», которое характерно для второго варианта, меня иногда раздражает. Лично я считаю, что нужно давать всю возможную функциональность (первый вариант), быть может, с возможностью коротких вызовов для реализации «особо популярных» задач (второй вариант). Думаю, в таком виде это удовлетворит всех, кроме хейтеров первого варианта, да.
>>49027 Мы уже обсудили что вебсокеты только для автообновления.
>>48863 >Я, кажется, представляю, о чём ты говоришь. Идея прикольная, но я бы забил и просто весь тред грузил чтобы уж точно всё предусмотреть. Больно много возни будет. Как бы тебе сказать. Примерно в таком режиме Курисач уже год как работал. Мы тут не для кодопозитива собрались, нужно развиваться. >Учитывая то, что никому кроме тебя такие запросы не нужны, вполне можно. А я бы не был так категоричен. Более того, Хомура уже говорил, что это предусмотреть дополнительно несложно. И в первую очередь он и принимает решение, как технически будет работать Курисач. >Потому что это велосипед Мы вообще новый движок сейчас изобретаем. Мне даже и сказать про велосипеды нечего, правда. >и так почти никто не делает Взывать к популярности. Хорошо, что для Хомуры это посредственный аргумент. Можешь ещё раз объективно объяснить, чем это плохо? >Если нет необходимости — лучше не усложнять, только проще будет. Необходимость — понятие очень растяжимое. Объективно говоря, для наших задач каждый раз пересылать разметку — лютый overkill, каждый раз устанавливать http-запросы — лютый overkill. В шифровании SSL необходимости тоже нет. Более того, в автообновлении как таковом необходимости нет. Работали и без неё. В оповещениях необходимости особой тоже нет. Это всё для удобства. Вот и JSON был бы неплох для удобства разработки. Если он будет лишним, и вызовет больше неудобств — тогда, конечно, он будет лишним. >И если необходимости получать конкретные посты нет, а её нет, то не надо ничего усложнять. Ты предлагаешь при обновлении стягивать сразу все посты? Вот тут явно протестую: скорость загрузки как по траффику, как по процессору возросла во много раз после перехода на динамику. >но я бы забил и просто весь тред грузил чтобы уж точно всё предусмотреть. Больно много возни будет. Знаешь, я тут кое-что заметил в этих словах. Да, тебе удалось меня довести всего за один пост ^_^ Это не «я бы забил», это ты каждому курисачеру предлагаешь вот так просто грузить каждый раз весь тред с нуля и перестраивать разметку. Хомура уже нас избавил от такой модели обновлений. Потому, что это важно.>>48957 >Такое изобретение называется «система контроля версий». Да, так и называется. >И уж тем более всего лишь ради сокращения сложности клиента, мне кажется, это не очень имеет смысл. >Учитывая то, что вычислительная мощность сервера постоянна, а клиентов — растёт с их количеством. Погоди-ка, это снизит нагрузку и на сервер. Я бы не предлагал, если бы это было тяжелее. Взгляни сам: в большинстве случаев там 0 обновлений, и сервер сразу говорит, что всё на месте. В данный же момент ему нужно сверять для этого имеющиеся номера постов. Когда там 1-2 обновления, это всё ещё будет проще, чем сверять все посты, и вычленять из них недостающие. Отличие от способа «по последнему id и количеству» я уже говорил: такой способ более универсальный, он поддерживает редактирование постов без изменения id и добавление/удаление кросс-тредовых ответов. Если же последние две фичи не нужны, то считаю способ «last id + last post number» наиболее оптимальным. Разве что для удаления/переотправки он требует загрузки всего треда заново. >Кстати, заметь: при автообновлении очень мал счётчик «попаданий» на событие «страница изменилась». Да, поэтому я и говорю, что нужно наиболее оптимизировать на случай, когда ничего не происходит. У постояльцев (которые основную нагрузку и дают) ещё и открыто несколько тредов сразу. Но и обновление всего треда — явление нежелательное. >В мире, где под андроид две читалки для борд, а для IOS — вообще ноль. Тогда нам ещё нужна мобильная веб версия. >Btw, уже сейчас давно как можно пользоваться json.update.php — в ответ на запрос из списка имеющихся у клиента постов прилетит и список удалённых постов, и html добавленных, и новая карта ответов треда. Это специально для тех, кто желает максимум вместить в один запрос. О, спасибо. >Если не ошибаюсь, это делается автоматизированно (где-то в дебрях read.php надо глянуть). Не представляю, о каком «автоматизированно» ты говоришь. >Что время, затрачиваемое на выполнение запроса одинаково мало. Опять ты их насилуешь, хехе?>>48975 >Будь на сервере вебсокеты нужно было бы просто рассылать посты субскрайберам, то же самое и с удалением, достаточно уведомить всех. О, адепт вебсокетов тоже тут. Привет.>>48977 >Если бы еще производительности на них хватало... Как раз вебсокеты — самая лучшая модель по загрузке процессора. Только вот с оперативной памятью беда: на каждое соединение постоянно висит отдельный серверный процесс. Да и не все платформы/браузеры/конфигурации поддерживают вебсокеты. Тот же Kaspersky, да и многие другие антивирусы, например, блокируют вебсокеты просто «на всякий случай».>>48981 >Для программиста это дольше, больше кода. Ты уже что-то пишешь?>>49027 >Есть два подхода со своими плюсами и минусами Всё равно нам нужен будет fallback, и простой интерфейс обновления всего треда целиком (либо постранично, если всё пойдёт дальше) Так что лучше сразу предоставить пользователю на выбор два стула интерфейса, а он пускай решает, что делать. Для внешнего парсинга может быть простой интерфейс с полным обновлением предпочтительнее. А для более продвинутого (в т.ч. браузерного) интерфейса желателен вариант с наименьшими нагрузками.
>>49173 >О, адепт вебсокетов тоже тут. Я периодически захожу почитать. Глядя какие костыли предлагают, я невольно задумываюсь над тем зачем, зачем они это делают? Я кстати закончил модуль работающий с файлами. Завтра приступлю непосредственно к реализации самой доски.
>>49052 Хорошо, тогда выслушивать «у меня тред перестал обновляться, почините» тоже не очень. >>49173 >В данный же момент ему нужно сверять для этого имеющиеся номера постов. Ну сравнение массивов не более 500 uint32_t — очень быстрая операция, как правило, это даже вмещается в одну кэш-строку процессора, так что в идеале выполняется за те же 500 тактов (другое дело, что перед собственно сравнением его его потаскают по памяти и т.п.) Даже SELECT выполняется несоизмеримо дольше (а сервер ведь должен узнать, чё там у базы). >Когда там 1-2 обновления, это всё ещё будет проще, чем сверять все посты, и вычленять из них недостающие. Но эти все обновления нужно будет хранить неограниченное время — а ведь это дублирование данных в базе и её сильное разрастание. >Если же последние две фичи не нужны, то считаю способ «last id + last post number» наиболее оптимальным. Разве что для удаления/переотправки он требует загрузки всего треда заново. Но у нас ведь есть и карта ответов, и удаление постов бывает — поэтому проще обмениваться списком постов и картой ответов (это пара килобайт туда и пара десятков килобайт оттуда). >Да, поэтому я и говорю, что нужно наиболее оптимизировать на случай, когда ничего не происходит. Да, сейчас как раз так и есть: если сервер вернул карту ответов и список постов, идентичные тем, что были до обновления, тогда на странице вообще ничего не модифицируется. >Тогда нам ещё нужна мобильная веб версия. Кстати да, наверное, нужно допилить мобильную версию до вменяемого уровня. >Не представляю, о каком «автоматизированно» ты говоришь. Да, кстати, сейчас тоже посмотрел и понял, что там что-то какая-то ересь, всё вручную делается. И что это всё надо переписывать, лол. >Так что лучше сразу предоставить пользователю на выбор два интерфейса, а он пускай решает, что делать. Вот и я о том же. Кстати, Курисач, я сейчас думаю над реализацией картинки + видео. Думаю сделать так: 1) при постинге с видео — вместо создания видеобокса в посте я в начало поста дописываю ссылку; 2) отключаю всю функциональность видобокса и эмбеддинга видео на сервере; 3) переношу превращение ссылки в видеобокс в kusaba.new.js; 4) делаю галочку в настройках «превращать ссылки на youtube, coub, vimeo в видеобокс» 5) если галочка выключена, то в каждом посте в видео превращается только первая ссылка, если до неё нет никакого текста и к посту не приаттачена картинка; 6) если галочка включена, то превращаются все распознанные ссылки в тексте вне зависимости от того, есть ли в посте картинка или нет. Как вам идея? Какие подводные камни?
>>49027> Ещё раз: твоим запросом не решается, например, скрытие удалённых постов.А как это решается твоим? В 2 запроса? Не смеши меня.>>49173> Мы вообще новый движок сейчас изобретаем. Мне даже и сказать про велосипеды нечего, правда.Одно дело изобретать движок, другое — новые способы передачи данных.> Взывать к популярности.Потому что популярно значит допустимо. Непопулярно значит нужно в конкретных случаях, когда не хватает популярного варианта. Это не наш случай.> Можешь ещё раз объективно объяснить, чем это плохо?И первого раза не было. Я не веб разработчик и вообще не изучал историю и принципы работы веба настолько хорошо, чтобы точно знать, чем JSON плох. Единственное, что я могу предложить, — формы умеют прозрачно кодировать и декодировать все клиенты и сервера. А вот в случае с JSON это всегда будет лишняя работа программисту как на сервере, так и на клиенте.Надо думать, прежде чем делать что-то необычное, а не делать необычное ради необычного.> Необходимость — понятие очень растяжимое.Ты привёл реально необходимые вещи.Нет необходимости передавать разметку? Передавайте JSON. Что-то так или иначе придётся передавать. И вообще сделать бы надо...Про запросы не понял, но у нас веб-браузеры, они только по HTTP умеют общаться с серверами.В шифровании есть необходимость, это обеспечение безопасности.Всё, что ты пишешь дальше, имеет необходимость: стало удобнее.От использования JSON как формата для передачи данных удобнее никому не станет, как я уже сказал, как минимум добавиться явный шаг для его кодирования и декодирования, потому что его поддерживает меньшее число серверов/клиентов. А единственный аргумент за него — «можно передавать массивы массивов», ороро.> Ты предлагаешь при обновлении стягивать сразу все посты?Все посты после последнего.> Это не «я бы забил», это ты каждому курисачеру предлагаешь вот так просто грузить каждый раз весь тред с нуля и перестраивать разметку.Потому что слишком много всего тут сейчас надо предусмотреть, и всё из-за карты ответов. Например, если на пост Х ответили из другого треда, сейчас без полной загрузки треда этого не узнать. Придётся много возиться.>>49332> Кстати, Курисач, я сейчас думаю над реализацией картинки + видео.Не надо усложнять с этой первой ссылкой. Просто убери возможность прикреплять видео, а все ссылки преобразуй в видео боксы. Если в настройках выключена галочка, то вообще ничего не преобразуй.
Я заюзала свой недописанный движок для того, чтобы на нем тестировать клиент. Таки пригодилось. >>49027 >в нашем случае мы считаем, что ножи (запросы) можно использовать бесконечно Использовать какой-то сложный (по нагрузке) запрос для чего-то простого лучше не стоит, как использовать для хлеба нож для мяса. >>49173 >Только вот с оперативной памятью беда Это, в общем-то, тоже проблема с производительностью, причем VDS с большим количеством оперативы нынче дороги. >>49382 >не изучал историю и принципы работы веба настолько хорошо, чтобы точно знать, чем JSON плох. Не знаем, но уже не любим. Шикарно. >формы умеют прозрачно кодировать и декодировать все клиенты и сервера И JSON тоже — фактически везде есть под это утилиты. >его поддерживает меньшее число серверов/клиентов Что не поддерживает JSON? Brainfuck?
>>49396> Не знаем, но уже не любим. Шикарно.Кто не любит? Нужны серьёзные причины для чего-то нестандартного, только и всего. Меня попросили объективные причины чтобы не использовать — я таких не знаю, хотя одну и вспомнил, но дело не в этом.> И JSON тоже — фактически везде есть под это утилиты.Речь не об утилитах, а о фактической поддержке клиентами и серверами, без необходимости дополнительной конвертации, и не важно, ручками ты это делаешь или библиотекой. Потому что формат форм — это стандарт, JSON — нет.> Что не поддерживает JSON? Brainfuck?> > добавиться явный шаг для его кодирования и декодирования
Пока криво и недоделано, но уже что-то. Я в восторге от QML, который сам на себя берет отображение большей части HTML-форматирования (например, эту ссылку) и освобождает меня от парсинга. >>49519 >для чего-то нестандартного >Потому что формат форм — это стандарт, JSON — нет. JSON уже c 2014 международный общепризнанный стандарт. > > > добавиться явный шаг для его кодирования и декодирования Строчка в начале и строчка в конце. Тоже мне сложности.
>>49382 >А как это решается твоим? В 2 запроса? Не смеши меня. Можно в два, можно сделать и в один (сейчас автообновление так работает — в один запрос делает всё). >Непопулярно значит нужно в конкретных случаях, когда не хватает популярного варианта. Это не наш случай. Имхо, как раз наш, если мы, конечно, о передаче массива, а не о дилемме JSON/формы. >Единственное, что я могу предложить, — формы умеют прозрачно кодировать и декодировать все клиенты и сервера. А вот в случае с JSON это всегда будет лишняя работа программисту как на сервере, так и на клиенте. Давай разберём по частям всё тобой написанное. 1. Формы. 1.1. Клиент: $.post(url, ...); — jQuery. Не «прозрачно», но просто. foo = new FormData; foo.append(...); bar = new XMLHTTPRequest; bar.send(foo); — чистый javascript. Нифига не прозрачно. Остальные языки — не знаю, как. В каких-то, быть может, просто/прозрачно, в каких-то нет. Для примера, в PHP я прозрачного метода для POST-запросов не видел. Только такой: $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) // $data = array('key1' => 'value1', 'key2' => 'value2', ...); ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); 1.2. Сервер: $data = $_REQUEST; — да, согласен, прозрачно. 2. JSON. 2.1. Клиент: $.post(url, ...); — jQuery. Так же. foo = new FormData; foo.append('data',JSON.stringify(data)); bar = new XMLHTTPRequest; bar.send(foo); — чистый javascript. То же самое, за исключением того, что FormData::append() вызывается только один раз для всех передаваемых данных — а значит, код одинаков для любого формата входных данных. В предыдущем случае придётся перебирать все данные, которые мы хотим отправить. 2.2. Сервер: $data = json_decode($_REQUEST['data']); — не совсем прозрачно, но элементарно понятно. И вот ради того, чтобы избежать вот этого вот усложнения в 21 символ, стоит мутить крокодилы с формами на клиенте? > потому что его поддерживает меньшее число серверов/клиентов. WAT >Например, если на пост Х ответили из другого треда, сейчас без полной загрузки треда этого не узнать. WAT Сейчас для этого перезагрузки треда не требуется, только перезагрузка карты ответов (в JSON, кстати), что несоизмеримо быстрее и проще. >Если в настройках выключена галочка, то вообще ничего не преобразуй. Но это нарушило бы привычную функциональность. А мой подход таков: при запиливании новой фичи для тех, кому эта фича не нужна, не должно ничего измениться. >>49396 >Таки пригодилось. Кухихи, вот, оказывается, какая ему судьба была предназначена. Алсо, запилил-таки видео + картинку. Немного, правда, по-другому: 1) при постинге с видео — вместо создания видеобокса в посте я в начало поста дописываю ссылку — да, переписана функция embeddedVideoBox(); 2) отключаю всю функциональность видобокса и эмбеддинга видео на сервере — поскольку ссылка дописывается сервером (чтобы не ломать уже отправленные посты), не стоит этого делать; 3) переношу превращение ссылки в видеобокс в kusaba.new.js — да, сделан «класс» embed_class { init(); process_links(); } ; 3.5) т.к. эта замена длится долго, теперь медленнее грузятся посты с кучей видео, особенно с vimeo и coub, у которых нет простого пути получить тамбнейл (если кто подскажет, буду очень благодарен), и приходится сразу на страницу пихать iframe с плеером — я делаю эту замену только в тех постах, что пришли от сервера, а не во всех видимых (в частности, при развороте поста, всплывании поста, предпросмотре и т.п. грузится только один пост, поэтому заменять нужно только в нём); 4) делаю галочку в настройках «превращать ссылки на youtube, coub, vimeo в видеобокс» — да; 5) если галочка выключена, то в каждом посте в видео превращается только первая ссылка, если до неё нет никакого текста и к посту не приаттачена картинка — сделано хитрее: embeddedVideoBox() ставит ссылкам класс alwaysvisible — они видны всегда; остальные — только при включённой галочке; 6) если галочка включена, то превращаются все распознанные ссылки в тексте вне зависимости от того, есть ли в посте картинка или нет — да. Инфа о том, как юзать — см. >>49597.
$.post(url, ...);
foo = new FormData; foo.append(...); bar = new XMLHTTPRequest; bar.send(foo);
$options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) // $data = array('key1' => 'value1', 'key2' => 'value2', ...); ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context);
$data = $_REQUEST;
foo = new FormData; foo.append('data',JSON.stringify(data)); bar = new XMLHTTPRequest; bar.send(foo);
$data = json_decode($_REQUEST['data']);
>>49275 >Я кстати закончил модуль работающий с файлами. Завтра приступлю непосредственно к реализации самой доски. О, молодец. >Ну сравнение массивов не более 500 uint32_t — очень быстрая операция, как правило, это даже вмещается в одну кэш-строку процессора, так что в идеале выполняется за те же 500 тактов (другое дело, что перед собственно сравнением его его потаскают по памяти и т.п.) Даже SELECT выполняется несоизмеримо дольше (а сервер ведь должен узнать, чё там у базы). Ну погоди, мы же говорим про базу данных. Сравнение интов — дело нехитрое. Больше вопрос в том, сколько должен выполнить сервер БД, чтобы из 500 строк повытягивать по 1 инту. Ему нужно довольно много побегать по связям для этого. А результат примерно тот же: после выполнения запроса веб сервер сразу знает, что именно у сервера БД запрашивать. >Но эти все обновления нужно будет хранить неограниченное время — а ведь это дублирование данных в базе и её сильное разрастание. Но не нужно же хранить ВСЕ изменения? Только последние 4-20 минут, всё старее можно удалять. Такой запрос даже за O(n) будет лёгким, будь за последние 20 минут хоть 1000 постов. Не дай бог такой темп на Курисаче >Но у нас ведь есть и карта ответов, и удаление постов бывает — поэтому проще обмениваться списком постов и картой ответов (это пара килобайт туда и пара десятков килобайт оттуда). Ну да. Удаление поста приведёт к перезакачиванию всего треда. >если сервер вернул карту ответов и список постов, идентичные тем, что были до обновления Погоди, карта ответов, как результат, так вся каждое обновление и пересылается? Да и запрос на составление 500 даже номеров — не самая простая задача. Хоть и да, это один запрос к базе, а не два. (Хотя постой, что-то мне подсказывает, что в SQL можно сразу написать сложный запрос вида: на каждую строку, принадлежащую моему треду и позднее «часа Х» достать пост по номеру из её же колонки «пост») Ладно, я и так понял: Подход весьма хорош. Но реализации требует тщательной и аккуратной. Как результат, что с него толку, если я его не пишу. >Кстати, Курисач, я сейчас думаю над реализацией картинки + видео. >Думаю сделать так >Как вам идея? Хмм, а костыль действительно неплох. >Какие подводные камни? Webm не продуман вообще. Всё же, там нужна и полноценная картинка, и полноценное видео. Других, вроде бы, не вижу.>>49382 >новые способы передачи данных. Телепатию через Нибиру рептилоидами >Потому что популярно значит допустимо. А непопулярно, значит, недопустимо уже? Это не смешно. >А вот в случае с JSON это всегда будет лишняя работа программисту как на сервере, так и на клиенте. В этом-то и дело, что тут ты и неправ. Есть удобные методы для работы с JSON. Как на сервере, так и на клиенте. Это Хомура и подметил: почему бы их не применить. А методы настолько удобные, что данными можно манипулировать сразу как массивами по имени (ассоциативными). >потому что его поддерживает меньшее число серверов/клиентов Стандарт Javascript определяет, что должны все. И уже 100 лет как. PHP сервер уже 100 лет как умеет. А новые так изначально с этой функциональностью на борту построены. Снова мимо. >Все посты после последнего. Уже говорили же: а что будем делать при удалении? Я уж не говорю тут, что от редактирования с сохранением номера мы отказались.>>49396 >причем VDS с большим количеством оперативы нынче дороги. Оперативная память осталась дорогой.>>49609 >Алсо, запилил-таки видео + картинку. Да, любопытно. Буду обкатывать.
Ну что, обкатываем: https://www.youtube.com/watch?v=TfH2Zw_YKKk Однострока: Тест 2: https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk Чуточку кода:https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk Inline-кода: https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk Экран-тесты https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk Тест555https://www.youtube.com/watch?v=TfH2Zw_YKKk И как нас тут видно, на днище, капитан?
Однострока:
https://www.youtube.com/watch?v=TfH2Zw_YKKk https://www.youtube.com/watch?v=TfH2Zw_YKKk
>>49585> JSON уже c 2014 международный общепризнанный стандарт.Который ни один браузер не поддерживает в формах, например.> Строчка в начале и строчка в конце. Тоже мне сложности.А можно просто не использовать JSON и не надо вообще ничего добавлять.>>49609> Можно в два, можно сделать и в один (сейчас автообновление так работает — в один запрос делает всё).Одним — это как?> Имхо, как раз наш, если мы, конечно, о передаче массива, а не о дилемме JSON/формы.Для массива и формы хватит. Массива в массиве у вас нет.> Остальные языки — не знаю, как. В каких-то, быть может, просто/прозрачно, в каких-то нет. Для примера, в PHP я прозрачного метода для POST-запросов не видел. Только такой:Очевидно, потому что пхп — серверный язык и не особо подходит чтобы самому запросы делать.> И вот ради того, чтобы избежать вот этого вот усложнения в 21 символ, стоит мутить крокодилы с формами на клиенте?Так где крокодилы на клиенте? На пхп что ли?> WATЯ о прозрачном кодировании/декодировании.> Но это нарушило бы привычную функциональность.Которая, в общем-то, никому не нужна. Сделай предупреждение, что всё, как раньше работать не будет, 2010 год давно закончился и пора сделать по-людски. Никто против и не будет даже.>>49648> А непопулярно, значит, недопустимо уже?А непопулярно значит читай хоть немного дальше того предложения, на которое собираешься отвечать.> А методы настолько удобные, что данными можно манипулировать сразу как массивами по имени (ассоциативными).Сомневаюсь, что такие методы понадобятся. С $_request ведь тоже как с ассоциативным массивом работаешь.> Стандарт Javascript определяет, что должны все. И уже 100 лет как.А при чём тут JS? У меня в курле его нет, например. Да и речь о прозрачном кодировании. Даже браузеры этого не умеют. А через формы не умеют даже непрозрачно.> Уже говорили же: а что будем делать при удалении?2 запроса. В общем-то, запрос по номерам в любом случае требует предварительный запрос номеров. Отсюда и узнаем удалённые.Заодно придумал новый аргумент, чем плох JSON: банально сложнее тестировать и вникать в принципы работы. С формами всё легко: можно легко клиентом кодировать, можно курл использовать, можно хоть в браузере через адресную строку смотреть результат. Апи обычно не для себя любимых делают.
Попробуйте открыть последние 50 постов любого треда.
>>49669 Удваиваю реквест починки. Очень неудобно весь тред скроллить с телефонов, грузится долго.
>>49670 Присоединюсь с просьбой туда же (в 404 хендлер) починить этот чёртов контроль кеширования. Уже не раз замечал, что при загрузке страницы браузер берёт версию, что у него была ещё вчера, вместо обновления.
>>49651 О святая Мадо-ками сама! Нашествие бобров! К такому меня жизнь не готовила, ведьмы как-то проще =) (btw, видно нормально, в коде, само собой, ссылки не раскрываются, заэкранированные тоже). >>49669 >>49670 >>49678 Почистил кэш клауды. Если почистить и кэш браузера тоже, то должно быть норм. Проверяйте, плз. Вообще не понимаю, почему клауда пытается кэшировать вот с таким убойным комплектом директив .htaccess: <Files *.html> RequestHeader add Cookie "prevent-caching" early Header add Expires "Mon, 26 Jul 1997 05:00:00 GMT" Header add Pragma "no-cache" Header add Cache-Control "must-revalidate, no-cache, no-store" Header unset Last-Modified Header unset ETag Header unset Vary </Files> Или ей наплевать, что запрос идет к .html, если он заканчивается 404? Тем более, что как ни странно, в заголовках ответа этих параметров нету... Короче, надо будет разбираться. На >>49648 и >>49666 отвечу вечерком. Хомура мимозабежавшая на Курисач
<Files *.html> RequestHeader add Cookie "prevent-caching" early Header add Expires "Mon, 26 Jul 1997 05:00:00 GMT" Header add Pragma "no-cache" Header add Cache-Control "must-revalidate, no-cache, no-store" Header unset Last-Modified Header unset ETag Header unset Vary </Files>
К-кстати у кого баги с обновление постов в Последние 50 постов зайдите в опции и поставьте галочку «Использовать старый метод обновления треда ». Это временное решение должно помочь, пока не починят.
С сегодняшнего дня у меня в опере мини снова вместо капчи значок загрузки. Единственный способ увидеть капчу, чтобы запостить в тред — зайти напрямую на kurisa.ch/captcha.php Можно ли вернуть, как было?
>>49648 >сколько должен выполнить сервер БД, чтобы из 500 строк повытягивать по 1 инту На самом деле, совсем немного — запрос элементарный: WHERE 'parentid' = $threadid, и всё (ну, ещё boardid, но он тут не важен). Другое дело — когда нужно получить последние посты: тут или WHERE 'parentid' = $threadid AND 'id' > $lastid, или WHERE 'parentid' = $threadid AND 'timestamp' > $last_update. Вытягивать инты ему всё равно придётся, просто в последнем случае он их не будет класть в выходной массив. А мой опыт кусабошатания говорит о том, что быстрее получается вытащить из базы сразу больше, но более простым запросом, а потом отсеять (если надо) уже в скрипте. >Только последние 4-20 минут, всё старее можно удалять. Но это означает, что все, кто обновляет треды реже, чем в 20 минут (а это вполне нормально, если автообновление отключено) — пролетают с «красивым» механизмом автообновления, так? >спойлер Было как-то за ночь, когда вайпали, лол. Если интересно, могу выгрузить csv из админки с темпом постинга или даже сделать xls за последние 400 дней (воу, так у нас же юбилей!) с красивыми графиками. >Погоди, карта ответов, как результат, так вся каждое обновление и пересылается? Да, ибо в ней не так уж много ссылок (в одном из рандомов, близком к бамплимиту намерил 1200 элементов). Сравнивать проще на клиенте, иначе бы пришлось гонять карту туда-обратно, а так — только обратно. >в SQL можно сразу написать сложный запрос вида: на каждую строку, принадлежащую моему треду и позднее «часа Х» достать пост по номеру из её же колонки «пост» Хм. Вроде вполне себе простой запрос, нет? SELECT 'message' FROM ... WHERE 'parentid' = ... AND 'timestamp' > ... >Всё же, там нужна и полноценная картинка, и полноценное видео. Для этого, увы, нужен ffmpeg. Ту самую javascript-реализацию ffmpeg на стороне клиента я рассматриваю исключительно как анекдот, да. =) Соответственно, этот реквест у меня поставлен в статус DELAYED. Но вообще, webm будет работать как обычный файл (и да, одновременно прикреплять webm и картинку будет нельзя — это же всё равно, что прикрепление нескольких картинок). >А методы настолько удобные, что данными можно манипулировать сразу как массивами по имени (ассоциативными). Да, именно это я и пытаюсь сказать. >от редактирования с сохранением номера мы отказались. Ну от него мы отказались презде всего по реквестам здешних жителей. >>49666 >Который ни один браузер не поддерживает в формах Не очень понял. В форму можно запилить поле со значением, в котором будет JSON-строка и сервер спокойно может это поле распарсить. Или ты про то, что JSON в «голом» виде не передаётся? Ну так HTTP тоже, иснкапсулируется в TCP-соединения, те — в IP-пакеты, а те — в Ethernet-фреймы, например. Дополнительный уровень абстракции здесь имеет не такой уж и большой оверхед по сравнению с удобством. >А можно просто не использовать JSON и не надо вообще ничего добавлять. Как видно из моего поста (>>49609) — надо (к примеру, зависящая от типов данных сборка формы на javascript, если не использовать jQuery). >Одним — это как? Туда — список отображённых постов в треде, оттуда — новый список постов, обновлённая карта ответов и html-кусок для дописывания в конец треда. Кстати, да, узкоспециальизированный инструмент строго для одного применения. Такова цена одного запроса вместо двух. >Массива в массиве у вас нет. Ну, как минимум, от сервера прилетает карта ответов в таком виде. От клиента тоже может понадобиться что-либо передавать. Вообще, я смотрю, разговор из предметной области ушёл в рассуждения о высших материях. Мне со стороны сервера совершенно не сложно одинаковым образом разбирать как классический $_REQUEST, так и $_REQUEST['json_data']. Вплоть до того, что можно будет написать if (isset($_REQUEST['json_data'])) $_REQUEST = json_decode($_REQUEST['json_data']) и дальше вообще не задумываться, каким образом прилетели исходные данные. А те, кто пишут клиенты, как хотят, пусть так и пишут. >пхп — серверный язык и не особо подходит чтобы самому запросы делать. Само собой, это был исключительно пример. >Так где крокодилы на клиенте? В многократных FormData::append(). >Я о прозрачном кодировании/декодировании. Я больше чем уверен, что всё, что может отправлять формы, кроме специальных утилит, что только это и умеют, умеет работать и с JSON. >Которая, в общем-то, никому не нужна. Сделай предупреждение, что всё, как раньше работать не будет Если можно сделать так, чтобы этого избежать, и это не труднее — то я считаю, что функциональность надо сохранять. И меня бесит, когда остальные думают противоположным образом и в новых версиях прог выпиливают привычную функциональность. >Никто против и не будет даже. Я буду, например. Мне удобнее ссылку пастить в поле, а не крутить текстбокс куда-то там вверх, когда в нём 30 кб текста. >С $_request ведь тоже как с ассоциативным массивом работаешь. Одноуровневым. JSON более гибок в плане многоуровневых массивов. >У меня в курле его нет, например. О святая Мадо-ками-сама! Да успокойся уже, будет тебе интерфейс с формами, если ты хочешь curl-ом читать Курисач. Да, если человек хочет извращений — я не вправе ему этого запретить. =) А для тех, кому удобнее запихнуть всё в json и не копаясь с формами, отправить одним полем — будет json. Кстати, curl — это как раз такая утилитка про котоую я говорил выше (которая больше ничего не умеет — и не должна уметь, в общем-то). >банально сложнее тестировать и вникать в принципы работы. WAT Ты «сырой» JSON нигде не читаешь, на клиенте данные в него пакуются уже после того, как скомпонованы, а на сервере ты их видишь уже после распаковки. >>49669 Да, это я хотел починить обновление «последних 50 постов» и «первых 100 постов», но вместо этого сломал хэндлер 404. Ещё один повод ночью всё-таки пытаться выспаться, а не шатать курисабу, да. Ближе к утру починил. >>49670 К 8:30 должно было уже быть починено, если до сих пор не починилось — то стоит почистить кэш (кэш клауды я в 15:30 сбросил). >>49817 >С сегодняшнего дня у меня в опере мини снова вместо капчи значок загрузки. Жесть. Так во всех тредах? В других браузерах не проявляется? В консоли оперы видны какие-нибудь сообщения?
WHERE 'parentid' = $threadid
WHERE 'parentid' = $threadid AND 'id' > $lastid
WHERE 'parentid' = $threadid AND 'timestamp' > $last_update
SELECT 'message' FROM ... WHERE 'parentid' = ... AND 'timestamp' > ...
$_REQUEST
$_REQUEST['json_data']
if (isset($_REQUEST['json_data'])) $_REQUEST = json_decode($_REQUEST['json_data'])
>>49833 > Жесть. > Так во всех тредах? > В других браузерах не проявляется? > В консоли оперы видны какие-нибудь сообщения? Ты не так понял. Не Опера, а Опера Мини, мобильный браузер, который грузит веб-страницы через прокси-сервера Оперы. Я через него с телефончика в интернете сижу. Да, во всех тредах.
>>49835 Ох, гоменнасай. Увидел «опера» и уже настроился на десктопную оперу, с которой у Курисача не очень радостные отношения (по крайней мере, были). После чистки кэша всё так же?
>>49837 В Опере Мини нет кэша. Может быть, он есть на прокси-серверах Оперы, но там я почистить не смогу.
>>49833> Или ты про то, что JSON в «голом» виде не передаётся?Именно. Используя xhr можно в голом виде, но из формы — никак. А передавать JSON в поле формы так вообще скрещивание ежа с ужом.> Как видно из моего поста (>>49609) — надо (к примеру, зависящая от типов данных сборка формы на javascript, если не использовать jQuery).Некоторые вообще не умеют не-вручную любые данные формировать, хоть формы, хоть JSON. Зато многие умеют делать это прозрачно, тогда как с JSON, определённо, почти никто.> Туда — список отображённых постов в треде, оттуда — новый список постов, обновлённая карта ответов и html-кусок для дописывания в конец треда.Если вы перейдёте на запрос по номерам, получится 2. Не понятно, к чему ты вообще про это сказал, если ни частным, ни общим запросом в 1 запрос ничего не выйдет.> Ну, как минимум, от сервера прилетает карта ответов в таком виде. От клиента тоже может понадобиться что-либо передавать.Сервер может что угодно передавать, давай не перескакивать на 20 шагов вперёд. Где клиенту потребуется передавать массив в массиве?> так и $_REQUEST['json_data'].Так ты серьёзно ежа с ужом скрестить собрался? Или пхп просто не умеет с другим форматом, отличным от форм, работать?> В многократных FormData::append().У нас jQuery используется, не надо никаких FormData и xhr. Голый JS вообще слабая штука.> Я больше чем уверен, что всё, что может отправлять формы, кроме специальных утилит, что только это и умеют, умеет работать и с JSON.Ну, вообще говоря — нет. > Я буду, например. Мне удобнее ссылку пастить в полеПри отправке скриптом добавляй содержимое поля в начало текста, делов то.> О святая Мадо-ками-сама! Да успокойся уже, будет тебе интерфейс с формами, если ты хочешь curl-ом читать Курисач.А ведь приходилось как-то.И зря ты его недооцениваешь. Через курл удобно потестировать запросы, чтобы разобраться, как они работают. И в случае с JSON это будет от неудобно в случае ежа и ужа до невозможно, если нормально делать. Хотя, может и возможно, лень проверять.
Тестировать надо автоматическими тестами phpunit и прочие, а не curl вручную. Да и json не бинарный, а текстовой, какие могут быть проблемы? Он парсится ничуть не медленнее формы, а уж маппятся они одинаково. Хотел было предложить вместо стандартного реквеста обертку из symfony, ну да ладно, кому как удобнее. Но вообще я согласен с хейтером жсон. Если вы не используюте RPC для всего, вплоть до формы загрузки, то зачем он нужен? Делайте API и все.
>>49666 >Который ни один браузер не поддерживает в формах, например. А при чем тут эти формы? Забудь ты про свои формы, что ты к ним привязался, это API. И все равно ответ-то в JSON придет. >можно курл использовать Ты еще скажи, что в curl нельзя использовать JSON, ага. http://stackoverflow.com/questions/7172784/how-to-post-json-data-with-curl-from-terminal-commandline-to-test-spring-rest Первая строчка в гугле. >>49851 >но из формы — никак. Зачем нам формы? >тогда как с JSON, определённо, почти никто И тут ты мне объясняешь, чего такого непрозрачного в кодировании JSON. >>49851 >Ну, вообще говоря — нет. Примеры? >Через курл удобно потестировать запросы, чтобы разобраться, как они работают. См. выше. >>49860 >Делайте API и все. Так его-то и делаем, на JSON. Просто один анон тут упорно пытается доказать, что JSON не нужен, а когда я ему говорю, что в API надо передавать список номеров постов для получения их содержимого, он начинает мне доказывать, что и это мне, видите ли, не нужно.
>>49840 Хм, то есть, подожди, она каждый раз всё грузит из инета, картинки там, всё-всё-всё? Очень странно, у меня даже в Opera Mobile на Windows Mobile 4 был кэш. >>49851 >А передавать JSON в поле формы так вообще скрещивание ежа с ужом. Почему JSON over HTTP POST — это «скрещивание ежа с ужом», а HTTP over TCP, TCP over IP, IP over Ethernet — нет? >Где клиенту потребуется передавать массив в массиве? Я уже говорил, что пока не знаю, но не считаю, что это нужно запретить пользователю. >Или пхп просто не умеет с другим форматом, отличным от форм, работать? Хм, а интересная идея — пытаться сначала парсить поле формы как json, потом запрос как форму (через $_REQUEST), и наконец, если это не удалось — то php://input как json. Надо будет тоже заложить такую возможность. >У нас jQuery используется А у клиента может и не использоваться. >При отправке скриптом добавляй содержимое поля в начало текста, делов то. Это был один из вариантов, что я рассматривал — но он не был связан с отключением функциональности, в отличие от изначально предложенного тобой. >А ведь приходилось как-то. А месье знает толк в извращениях. Поясняю: я имею в виду не «проверить какую-то фичу и посмотреть что в запросе, что в ответе» — там, действительно, нужна максимальная простота тулзов. Я имею в виду читать в нормальном виде. >И зря ты его недооцениваешь. Я юзаю curl тогда, когда именно он нужен, а не вместо браузера. Для отладки он порой незаменим, а вот в нормальном режиме я лучше посижу через Хоро, например. >Через курл удобно потестировать запросы, чтобы разобраться, как они работают. Именно >до невозможно, если нормально делать. Как Гин пишет ниже — возможно. >>49860 >Если вы не используюте RPC для всего, вплоть до формы загрузки, то зачем он нужен? Банальная простота упаковки и распаковки клиентом и сервером.
php://input
>>49971 > у меня даже в Opera Mobile на Windows Mobile 4 был кэш Opera Mobile и Opera Mini — совершенно разные браузеры. > она каждый раз всё грузит из инета, картинки там, всё-всё-всё? Весь трафик проходит через прокси-сервера Оперы, где веб-страницы переформатируются и сжимаются. Любые запросы, скрипты — всё выполняется через сервера. Конечное устройство только отображает статичную страничку, загружая каждый раз новую после любого обращения к серверу. В общем, раньше при переформатировании страницы Курисача на прокси-сервере Оперы в итоговую страничку, передаваемую мне в телефончик, на место капчи ставилась картинка с капчей, а теперь — значок загрузки. Капча сейчас, как я вижу, не сразу выдаётся, а подгружается после загрузки страницы. Возможно, дело в этом. Два дня назад капча выдавалась так же?
>>49982 >Два дня назад капча выдавалась так же? Да, в том-то и дело. По окончании загрузки вызывается функция refreshCaptcha() и заменяет этот значок загрузки на сгенерированную капчу. Причём, в обычной опере и в хроме в некоторых тредах тоже такое было, но после небольшого шаманства (несколько месяцев назад) с тем, где вызывать функцию refreshCaptcha() (перенёс просто в код страницы из $(document).ready) проблема решилась. В Opera Mini, судя по всему, консоли тоже нет, да?
>>49863> Ты еще скажи, что в curl нельзя использовать JSON, ага.Не был уверен насчёт кастомизации формата. Однако JSON ещё и ручками вбивать надо. Пипец удобно.> Примеры?Курл как раз, но это я поздно. Я вообще мало HTTP клиентов знаю, чтобы кучу примеров приводить, но и его утверждение ни разу не доказано.> он начинает мне доказывать, что и это мне, видите ли, не нужно.Но ведь и правда не нужно. Где тебе оно нужно ты так и не рассказала.>>49971> Почему JSON over HTTP POST — это «скрещивание ежа с ужом», а HTTP over TCP, TCP over IP, IP over Ethernet — нет?Скрещивание это когда ты JSON кодируешь в поле формы, а не отправляешь в чистом виде.До чего забавно, вы так хотите этот JSON и имеете разные представления о том, как его надо передавать. Это так, к слову.> Я уже говорил, что пока не знаю, но не считаю, что это нужно запретить пользователю.Не надо сюда снова приплетать свой линукс вей, пожалуйста. Это уже выглядит как простое оправдание своей лени подумать.> А у клиента может и не использоваться.Что? Тогда сайт работать не будет, тут куча всего jQuery использует.> Как Гин пишет ниже — возможно.Возможно, но не нормально.
>>50013 >Однако JSON ещё и ручками вбивать надо. Данные в любом случае придется вбивать руками, будь то форма, будь то JSON. Даже если брать из файла, то все равно в файл надо будет вбивать руками. >Где тебе оно нужно ты так и не рассказала. Да я уже десять раз разъяснила про обновление. >спойлер Наверное потому, что у Хомуры php, а у меня python. На самом деле, разница между формой и json в питоне такова: форма: payload = {'field1': nujno, 'field2': toje_nujno} r = requests.post(url, data=payload) а json: payload = {'key1': nujno, 'key2': toje_nujno} r = requests.post(url, json=payload) Потому какой-то сложности в использовании json вообще не вижу. >Тогда сайт работать не будет, тут куча всего jQuery использует. Ну всякие дашчаны и прочие обходятся ведь без jQuery спокойно.
payload = {'field1': nujno, 'field2': toje_nujno}
r = requests.post(url, data=payload)
payload = {'key1': nujno, 'key2': toje_nujno}
r = requests.post(url, json=payload)
>>50021> Данные в любом случае придется вбивать руками, будь то форма, будь то JSON. Даже если брать из файла, то все равно в файл надо будет вбивать руками.Вот только форму вбивать гораздо проще, просто несравнимо.> Да я уже десять раз разъяснила про обновление.Для которого достаточно частного запроса. На этом список, видимо, заканчивается.> Ну всякие дашчаны и прочие обходятся ведь без jQuery спокойно.Мы вообще-то про JS до этого говорили. Если клиент (браузер) из-за каких-то нелепых побуждений юзера блокирует jQuery (через адблок, например), то сайт не будет нормально работать.
>>50013 >Однако JSON ещё и ручками вбивать надо. А форму разве нет? >но и его утверждение ни разу не доказано. У меня было не утверждение, а догадка, основанная на впечатлении от известного мне ПО. >спойлер О передаче его не в виде поля формы и возможности удобного распарсивания на php я узнал, пожалуй, только пару дней назад. Мне-то без разницы, как мне его передадут, я смогу схватить данные любым из этих трёх способов. >оправдание своей лени подумать. >лень >запилить три способа работы на выбор вместо одного У меня какое-то не такое представление о лени? >Тогда сайт работать не будет Я про абстрактный клиент на JS, не связанный с сайтом. Естественно, это гипотетический случай, и я его привёл как один из способов создания форм, который я знаю. Суть в демонстрации факта, что есть ситуации, в которых json делается проще, чем форма. >>50038 >Вот только форму вбивать гораздо проще, просто несравнимо. Ставить знаки равенства намного проще, чем двоеточия?
>>50097> У меня какое-то не такое представление о лени?Программирование — техника. Ты просто садишься и пишешь простой код как умеешь тем более когда дело касается простенького сайт на пхп, это больше «пролетарская» работа, вроде работы за станком. Тебе может не лень этим заняться. Включить голову и хорошо подумать, зачем ты что-либо делаешь, безусловно, сложнее, и тут уже включается лень.> есть ситуации, в которых json делается проще, чем форма.Конечно есть. JSON происходит от JS вот это поворот, который умел работать с ним с момента его создания.В общем-то, наличие таких ситуаций мало чего доказывает.> Ставить знаки равенства намного проще, чем двоеточия?А ещё скобки (как минимум 2), запятые, кавычки (ключи и строки).
Не знаю куда идти, спрошу здесь. Почему .онион ссылки через тор не открывает?
>>50259 потому что ты лох и всегда им был
>>50169 >Включить голову и хорошо подумать, зачем ты что-либо делаешь, безусловно, сложнее, и тут уже включается лень. У меня обычно наоборот, чем делать всё механически, я предпочитаю изначально найти какую-нибудь хитрость, дабы облегчить себе эту работу. Другое дело в том, что запиливать функциональность не так сложно, чтобы от этого вообще отказываться. >А ещё скобки (как минимум 2), запятые, кавычки (ключи и строки). Ну если для тебя это настолько тяжело — пользуйся формами, лол, я и то и то сделаю же.
>>50280> У меня обычно наоборот, чем делать всё механически, я предпочитаю изначально найти какую-нибудь хитрость, дабы облегчить себе эту работу.Хитрость это тоже механика, приобретаемая с опытом. А обосновать и доказать всегда тяжелее.> Другое дело в том, что запиливать функциональность не так сложно, чтобы от этого вообще отказываться.Дело не в том, сложно это или нет, а в том, нужно ли это. Ты думаешь, что нужно, а значит нужно передавать JSON, следовательно ты вводишь JSON. А когда тебя просят подумать, ты говоришь, что тебе просто несложно, хотя вопрос по-другому стоял.> Ну если для тебя это настолько тяжело — пользуйся формами, лол, я и то и то сделаю же.Я из тех людей, что любят строгость, а не разброс из множества вариантов работы с системой. Представь, появляется разработчик, читает документацию по апи и видит «а у нас можно и формы, и JSON, и JSON через формы». Реакцию «ух как круто, столько возможностей» это вызовет в последнюю очередь, скорее полное недоумение от того, что вы перенаворотили.Лично мне апи вряд ли понадобится, я просто хочу вас предостеречь, чтобы не получилась очевидная лажа.
>>49708 >Вообще не понимаю, почему клауда пытается кэшировать вот с таким убойным комплектом директив А ты присмотрись. Всё потому, что это всё не прилетает. Вот что пишет транспортный уровень HTTP:HTTP/1.1 200 OK Date: Sun, 29 May 2016 06:04:09 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: __cfduid=*ray_id*; expires=Mon, 29-May-17 06:04:07 GMT; path=/; domain=.kurisa.ch; HttpOnly X-Powered-By: PHP/7.0.7 Vary: Accept-Encoding X-Varnish: 1922183322 Age: 0 Via: 1.1 varnish Server: cloudflare-nginx CF-RAY: *ray_id* >Или ей наплевать, что запрос идет к .html, если он заканчивается 404? Ха. На уровне сервера изменяется ответ в результат 200 OK. И страница тоже весьма валидна, нигде нет кодов ошибки. По сути клауда вообще не знает, что там происходит 404. >А мой опыт кусабошатания говорит о том, что быстрее получается вытащить из базы сразу больше, но более простым запросом, а потом отсеять (если надо) уже в скрипте. А потому, что при таких мелких относительно уровня БД операций, самая дорогостоящая — собственно, сам запрос. Более того, на самом хостинге сервер БД может быть в большой нагрузке, и каждый запрос сначала ждёт очереди. >запрос элементарный: WHERE 'parentid' = $threadid, и всё (ну, ещё boardid, но он тут не важен). Я думал, ты подумаешь сразу над тем, как ему этот запрос выполнять. Хотя да, если у него бинарное дерево — это и вправду быстро. >Но это означает, что все, кто обновляет треды реже, чем в 20 минут (а это вполне нормально, если автообновление отключено) — пролетают с «красивым» механизмом автообновления, так? Хмм. Однако, тоже. Я уже рассчитывал на исключительно «постоянных» клиентов. Ну можно также и увеличить размер базы истории. Т.к. это в любом случае получается очень малая таблица. >первый спойлер Кажется, ты выкладывал. Так или иначе, не думаю, что это нужно. >написать if (isset($_REQUEST['json_data'])) $_REQUEST = json_decode($_REQUEST['json_data']) и дальше вообще не задумываться, каким образом прилетели исходные данные. А те, кто пишут клиенты, как хотят, пусть так и пишут. Чёрт, а это круто. Это же ассоциативный массив. И в него же тоже спокойно можно писать. Однозначно лучший способ. >В консоли оперы видны какие-нибудь сообщения? Консоль в Опере мини (О.О)>>49851 >Так ты серьёзно ежа с ужом скрестить собрался? Или пхп просто не умеет с другим форматом, отличным от форм, работать? >У нас jQuery используется, не надо никаких FormData и xhr. Голый JS вообще слабая штука. «Голый JS» может всё, что предоставляет браузер. Так что я просто подожду хоть какой разумной мысли. Кстати, тот же Meteor фреймворк спокойно пересылает JSON через вебсокеты. И всё это вполне внятно и удобно работает. Честно говоря, я вообще не понимаю твоих возражений. Особенно когда Хомура уже заявляет, что будет унифицированный интерфейс.>>49860 >Он парсится ничуть не медленнее формы, а уж маппятся они одинаково. Если кто смотрел в формат этого самого multipart/form-data, то понял бы, что JSON даже компактнее будет. Да и, кажется мне, его составлять и разбирать процессору даже проще.>>49863 >Зачем нам формы? Кстати, да. Также укажу, что они могут тоже вызвать затруднения у простых видов клиентов.>>49971 >подожди, она каждый раз всё грузит из инета, картинки там, всё-всё-всё? Нет, но она настолько облачная, что даже собственным кешем управление идёт с сервера Оперы. >А у клиента может и не использоваться. Вполне. Вообще скажу о вполне реальной возможности отказа от его использования.>>50013 >Спойлер Кажется, ты не понял. Унифицированность интерфейса говорит о том, что нет совершенно никакой разницы, прилетит этот JSON в форме, в POST'е, или вообще в GET'е. А ты строишь из себя дурака и смеёшься с этого. Если ты пытаешься сказать «Я против того, чтобы делали поддержку JSON потому, что он мне не понравился» — тебя послушают.>>50038 >Вот только форму вбивать гораздо проще, просто несравнимо. Вот это спорный вопрос, между прочим.>>50097 >Ставить знаки равенства намного проще, чем двоеточия? Лол. Но толстите.>>50281 >Ты думаешь, что нужно, а значит нужно передавать JSON, следовательно ты вводишь JSON. А когда тебя просят подумать, ты говоришь, что тебе просто несложно, хотя вопрос по-другому стоял. Объективно говоря, тут я с тобой соглашусь. Можно вполне написать так, чтобы это не было нужно. Но проще написать как сейчас. И ты забываешь, что на клиентской стороне такие же обычные кодеры. А ведь API пишется в первую очередь для них. >Лично мне апи вряд ли понадобится, я просто хочу вас предостеречь Кажется, можно вздохнуть с облегчением. Потому, что JSON действительно легко пристыковать. Будет не нужно — на начальном уровне, где входные запросы распределяются, можно будет всё удалить назад, и вот тебе один интерфейс снова. А будет это к лучшему или нет — уже время покажет.
HTTP/1.1 200 OK Date: Sun, 29 May 2016 06:04:09 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: __cfduid=*ray_id*; expires=Mon, 29-May-17 06:04:07 GMT; path=/; domain=.kurisa.ch; HttpOnly X-Powered-By: PHP/7.0.7 Vary: Accept-Encoding X-Varnish: 1922183322 Age: 0 Via: 1.1 varnish Server: cloudflare-nginx CF-RAY: *ray_id*
multipart/form-data
>>50290> «Голый JS» может всё, что предоставляет браузер.Какая разница, что он может, мы о другом говорили.> Особенно когда Хомура уже заявляет, что будет унифицированный интерфейс.Унифицированный интерфейс не есть хорошо.> Вот это спорный вопрос, между прочим.Абсолютно нет.> Но проще написать как сейчас.Ещё проще вообще ничего не писать, например. И написать, чтобы этого не было нужно, тоже проще. Проще, чем написать всё, конечно же.> И ты забываешь, что на клиентской стороне такие же обычные кодеры. А ведь API пишется в первую очередь для них.Клиентские кодеры предпочтут однозначность. Со стороны эта затея выгдядит абсолютно нелепой, гении линуксопрограммирования дорвались до веба и устроили беспорядок, зато получить посты можно аж 10 разными запросами. Знакомая карикатура? Это несерьёзный подход, люди с таким впервые столкнутся, потому что ни один нормальный веб-сервис себе такого не позволяет.
>>50294 Да, мысли есть. Разумные? Частично. Но мне придётся прекратить обсуждение. Я просто не в состоянии потянуть столько зелени.
>>50281 >Дело не в том, сложно это или нет, а в том, нужно ли это. Тем не менее, Гин, например, нужно. >А когда тебя просят подумать, ты говоришь, что тебе просто несложно Я подумал и понял, что людям надо и хуже при этом не будет. И заодно это несложно. >Я из тех людей, что любят строгость, а не разброс из множества вариантов работы с системой. Ну ты любишь одно, а кто-то другой любит другое. >Реакцию «ух как круто, столько возможностей» это вызовет в последнюю очередь, скорее полное недоумение от того, что вы перенаворотили. Если следовать такой логике, подобную же реакцию должна вызвать документация по любым стандартным библиотекам (или встроенному аналогичному функционалу) какого-нибудь языка программирования (вплоть до linux shell и содержимого /bin и /usr/bin, лол, если это можно так назвать). >>50290 >Всё потому, что это всё не прилетает. Да, я это уже увидел. Страаная очень вещь, надо будет разбираться... >По сути клауда вообще не знает, что там происходит 404. Да, я там немного не то написал — я имел в виду, что, возможно, сервер не выдаёт заголовки, если видит, что произошла 404. >А потому, что при таких мелких относительно уровня БД операций, самая дорогостоящая — собственно, сам запрос. >Более того, на самом хостинге сервер БД может быть в большой нагрузке, и каждый запрос сначала ждёт очереди. Вот-вот. >Ну можно также и увеличить размер базы истории. Вопрос — на сколько? Обооснованного ответа на него нет, всё равно придётся выбирать по какому-то критерию. >Т.к. это в любом случае получается очень малая таблица. Ну это зависит от времени хранения записей. Плюс, их надо оттуда удалять, а это означает, что кто-то должен этим заниматься (может, тот же, кто дописывает туда запись)... В целом, идея твоя мне понятна, хотя я пока и не думаю, что сейчас она решает какую-то насущную проблему. >Кажется, ты выкладывал. Да, я уже успел выложить графичек. =) >Однозначно лучший способ. Вот и я о том же. Очень красиво: вся унификация делается одной строчкой. >Консоль в Опере мини (О.О) Да, я, к сожалению, не имел дел с таким поделием сумрачного браузеростроительного гения, как Opera Mini, поэтому, я уже понял, что возможностей дебага с ней мне не видать... >И ты забываешь, что на клиентской стороне такие же обычные кодеры. А ведь API пишется в первую очередь для них. Да, именно эту мысль я и пытался донести до джейсонхейтер-куна. >>50294 >Унифицированный интерфейс не есть хорошо. WAT >Абсолютно нет. Ну уж точно не >просто несравнимо тяжелее ставить кавычки и двоеточия вместо знаков равенства, лол. >Клиентские кодеры предпочтут однозначность. Ты очень хорошего мнения о клиентских кодерах.
Я просто оставлю это здесь: https://habrahabr.ru/company/pvs-studio/blog/301736/
>>50421> Тем не менее, Гин, например, нужно.Нет, как оказалось, не нужно.> Я подумал и понял, что людям надо и хуже при этом не будет. И заодно это несложно.Я спросил, зачем это надо, где может понадобиться передавать массив в массиве. Теперь ты мне на это говоришь «ну, людям надо, хуже не будет». Мугичкой подумал?> Если следовать такой логике, подобную же реакцию должна вызвать документация по любым стандартным библиотекамВообще-то нет, не вызывает. Стандартные библиотеки как раз очень строги и однозначны.> Ну уж точно не >просто несравнимо тяжелее ставить кавычки и двоеточия вместо знаков равенства, лол.action=getposts&board=sg&thread=1488&after=3000против{"action":"getposts","board":"sg","thread":1488,"after":3000}Ощутимо сложнее, легко ошибиться, просто пропустив кавычку.> Ты очень хорошего мнения о клиентских кодерах.Не понимаю тебя. Чем однозначнее, тем проще разбираться, неважно, насколько хорош клиентский кодер.
action=getposts&board=sg&thread=1488&after=3000
{"action":"getposts","board":"sg","thread":1488,"after":3000}
>>50472 >Нет, как оказалось, не нужно. Может. всё-таки она решит, нужно ей или нет? >Я спросил, зачем это надо, где может понадобиться передавать массив в массиве. Теперь ты мне на это говоришь «ну, людям надо, хуже не будет». Зачем это надо — тебе уже написали выше. Передавать массив в массиве — это одна из возможных вещей, при которой преимущества JSON видны. >Вообще-то нет, не вызывает. Стандартные библиотеки как раз очень строги и однозначны. Угу, а потом появляются с десяток разных способов, к примеру, сделать какую-нибудь операцию со строкой или с массивом. Библиотеки на то и библиотеки, что предоставляют простой инструментарий, которым можно покрыть максимум типичных операций, и без перекрывания возможностей инструментов это невозможно. >Ощутимо сложнее, легко ошибиться, просто пропустив кавычку. Такая ошибка на сервере ловится автоматически. А вот ошибка, когда у тебя в запросе неэкранированные амперсанды, например, для сервера остаётся незамеченной. Не говоря уже о том, что конструировать строку запроса, включающую, например, пробелы, знаки вопроса, амперсанды, кавычки, слеши или тем более, русские буквы — гораздо сложнее, чем в JSON. Хотя я знаю, что ты на это возразишь: что-то типа если это с form-data сложнее, чем с JSON, значит, это никому не нужно! >Чем однозначнее, тем проще разбираться Клиенту не надо разбираться, клиенту надо выбрать максимально удобный для него путь.
>>50012 > В Opera Mini, судя по всему, консоли тоже нет, да? Конечно, нет. Это же просто терминал. Вся обработка на сервере происходит. > По окончании загрузки вызывается функция refreshCaptcha() и заменяет этот значок загрузки на сгенерированную капчу. Значит на прокси-сервере почему-то не выполняется скрипт и не подгружается капча. И чёрт знает, почему раньше подгружалась, если всё так же работало. Одним разработчикам Оперы это известно. Я, конечно, уже приспособился ходить за капчей на captha.php, но если у тебя будут идеи и время, чтобы улучшить совместимость Курисача с Оперой Мини, то было бы здорово.
>>50516 Анон, я п-пока буду капчу отключать и как спать ложится включать. Надеюсь тебе будет удобнее так.
>>50517 Благодарю. Хотя я с телефончика мало сюда пишу, не больше пары постов в день, в основном только читаю. Так что меня текущее положение с капчей почти не напрягает. Но если тебя не затруднит включать и выключать, то будет здорово.
>>50518 Там одну галочку поставить/убрать. Т-так что мне не трудно.
>>50516 >Конечно, нет. Это же просто терминал. Вся обработка на сервере происходит. Ну да, я примерно понял. Жалко, что такой подход, на самом деле, убивает любую возможность дебага, и потому очень тяжело узнать, почему так. >И чёрт знает, почему раньше подгружалась, если всё так же работало. Одним разработчикам Оперы это известно. Вот-вот. Я пока записал себе это как NEED INFO, если вдруг появятся какие идеи — постараюсь проверить.
Хомура, хорош шатать кусабу! Я не знаю, из-за тебя это или нет, но Оверчан (самая новая версия) тупо отказывается постить на Курисач. При любой попытке выдает либо стандартное failed to respond, когда теряет сеть, но чаще 301 — Moved permanently. Естественно, пост не отправляется. Что делать?
>>50537 Это из-за того, что оверчан пытается обращаться к Курисачу по http, его, естественно, перебрасывает на https, но вместо того, чтобы послать запрос на https, оверчан отваливается, считая, что если не 200 — то всё плохо. Нужно, чтобы кто-то собрал билд оверчана с https. Вообще, чем дальше, тем больше я вижу, что переход на https не решил ни одной насущной проблемы, зато принёс огромную кучу неудобств...
>>50545 Уже с-сделали. Судя п-по сообщением выше. >>48802
>>50546 А ведь и точно, значит, возможно, всё должно быть уже решено. Вопрос, получается, только в том, где взять этот билд (если Джинн говорит, что в самой новой транковой версии эта бага не исправлена).
>>50568 Мику ещё н-не выпустила новый патч. Говорят скоро будет.
>>50545В настройках можно принудительно использовать https(оно щас должно быть по дефолту, поэтому и работает). И вообще в чем смысл было перебрасывать на https, сидели бы кто хотел на http и не парились.
>>50759
>>50596 >И вообще в чем смысл было перебрасывать на https, сидели бы кто хотел на http и не парились. Ну, тут выше требовали, чтобы был https и только https, лол.
>>50797 Толку от данного хттпс никакого по сути. Он от клиента до клоды, дальше у вас уже нет сертификата.
>>50799 Ну я тоже не получил вменяемого ответа на вопрос «какие проблемы решит https», кроме аргументов типа «меня будет сложнее выследить». О том, что это расшатает сам Курисач и отвалятся мобильные клиенты — я не очень подумал.
>>50504> Может. всё-таки она решит, нужно ей или нет?Она огласила, что нужно. И для этого эта функциональность не нужна.> Зачем это надо — тебе уже написали выше. Передавать массив в массиве — это одна из возможных вещей, при которой преимущества JSON видны.Нет, не возможных, пока не показано обратное. А больше преимуществ ты мне не назвал.> А вот ошибка, когда у тебя в запросе неэкранированные амперсанды, например, для сервера остаётся незамеченной.Вот только ошибиться с кавычками проще — достаточно случайно недожать клавишу.> Не говоря уже о том, что конструировать строку запроса, включающую, например, пробелы, знаки вопроса, амперсанды, кавычки, слеши или тем более, русские буквы — гораздо сложнее, чем в JSON.Хочется опять задать вопрос — зачем это нужно? Где будут такие запросы, где такая информация будет передаваться? Я вижу только отправку поста, однако, сейчас для этого используется иное кодирование без необходимости экранировать что-либо, к тому же передавать файлы в JSON это вообще пиздец. А в остальных случаях твой аргумент инвалид.> Хотя я знаю, что ты на это возразишь: что-то типа если это с form-data сложнее, чем с JSON, значит, это никому не нужно!Всё верно, абсолютная истина.> Клиенту не надо разбираться, клиенту надо выбрать максимально удобный для него путь.И максимально удобным будет тот, к которому он привык. И ты знаешь какой.
>>50901 По-моему мы ходим по кругу. Ты уверяешь, что Гин не нужны её реквесты, она утверждает, что нужны. Мне кажется, более обоснованно сделать, что просят, чем сопротивляться, если это несложно. А ещё, думается мне, мы больше тут размышляем над тем, делать или не делать, чем нужно времени на то, чтобы удовлетворить всех, написав-таки эти несчастные две строчки. >Нет, не возможных, пока не показано обратное. Вот именно из-за этого обычно получается нерасширяемая и бесполезная ерунда вместо хорошего развиваемого проекта. >Вот только ошибиться с кавычками проще — достаточно случайно недожать клавишу. В результате ты получишь ошибку, взглянешь на запрос у отправишь уже исправленные данные. А вот в случае с амперсандом, в базу может записаться (или тебе выдаться) совсем не то, что надо. Это гораздо хуже, чем ошибка в предыдущем варианте. >Где будут такие запросы, где такая информация будет передаваться? См. выше. >Всё верно, абсолютная истина. Лол, тогда у меня нет комментариев. Поиск текста, например, типа, не нужен. Ок. >И максимально удобным будет тот, к которому он привык. И ты знаешь какой. Например — JSON.
>>50934> Вот именно из-за этого обычно получается нерасширяемая и бесполезная ерунда вместо хорошего развиваемого проекта.Только у дилетантов, не умеющих грамотно планировать. Зачем тогда вообще браться за что-то серьёзное вроде реализации апи — не понятно.> А вот в случае с амперсандом, в базу может записаться (или тебе выдаться) совсем не то, что надо. Это гораздо хуже, чем ошибка в предыдущем варианте.У нас только один запрос редактирует базу, в которым можно ошибиться подобным образом, и там иное кодирование вообще. Так что нет, не хуже.> См. выше.Ссылку.> Лол, тогда у меня нет комментариев. Поиск текста, например, типа, не нужен. Ок.Для тестирования поиска текста я буду искать очень простой текст. И точно не захочу пользоваться пост запросами для этого. А ещё поиск не модифицирует базу.> Например — JSON.Крайне неумелый манёвр. Назови мне хотя бы парочку сайтов, которые принимают данные в JSON. Даже если ты можешь назвать эту парочку — я на каждый из них найду несколько десятков, где используются формы. Ну ты понял, что тут на самом деле привычно.
>>50965 >Только у дилетантов, не умеющих грамотно планировать. Таких дилетантов почему-то 99%. >У нас только один запрос редактирует базу >Для тестирования поиска текста я буду искать очень простой текст. >не захочу пользоваться пост запросами для этого. >поиск не модифицирует базу. Ты всё время сваливаешься на частности. Если уж так говорить, давай, поругайся на Javascript, что в нём есть JSON.stringify() и на PHP, что в нём есть json_decode(). Ведь по твоей логике не просто можно, а необходимо обходиться без парсинга JSON на сервере и создания JSON на клиенте. >Назови мне хотя бы парочку сайтов, которые принимают данные в JSON. Не интересовался этим вопросом, поскольку не вижу проблем в реализации парсинга JSON. Я изучать эти сайты буду дольше, чем делать API, лол. >я на каждый из них найду несколько десятков, где используются формы. Ну, естественно, формы популярнее JSON. Но это не отнимает у последнего право на жизнь. >Ссылку. Да в треде выше я на этот вопрос неоднократно отвечал. Вообще, давай начнём с того, что ты от меня хочешь. Ты хочешь, чтобы я сделал возможность передавать данные только в form-data и никак иначе? Это не решит ни одной проблемы, а возможностей будет меньше, так что не катит.
JSON.stringify()
json_decode()
Нет, я не забила, продолжаю потихоньку делать, хотя прогресс маловат.
Прикрутила картиночки в свое кривоподелие.
Картинки теперь можно открывать (в отдельном окне).
После отправки поста получается эффект, будто страница обновилась. Отбрасывает вверх. Отправка через javascript включена. Выключаю — всё так же. Браузер Chrome 51.0.2704.106 m (64-bit).
>>54123 Решилось
>>51886 Няшечка, а можно с пика минипик нумер 12 который, в хайрезе же? Не шакальничай тока, чур, оставайся няшкой же^^
Я всю историю появления Курисачя проспал, его Клара с Девятачя создал?
>>55186 Н-насколько мне известно, Клара Курисач отдельно запилил.
>>55215 Есть отдельный Курисач? Я про этот. Помню у них отдельный дизайн был, вот и подумал что это Клара его создал, он сейчас во главе?
>>55295 Не, тут в том смысле, что Курисач не являлся филиалом девятача. А если ты именно про Клару, а не про девятач, то вроде бы да, он к девятачу имел изначально отношение. Потом, правда, самоустранился от дел и отдал Курисач Ханако а потом передумал и решил его вернуть, но это отдельная часть Марлезонского балета, да, и вот теперь Курисач таков, каков есть.
>>55301 И где Клара сейчас? Ущёл на пенсию от парашеводства?
>>55488 Скорее всего д-да. А так думаю никто кроме него не знает.
>>55511 Опять это проклятая картинка.
>>55530 Она к-красивая. Хоть и грустная.
У нас серьезные проблемы с автообновлением.
>>55644 Хм. Какие? У меня всё работает. Что не так?
>>55731 Если в т-тред зайти через [Последние 50 постов] начинаются проблемы.
>>55761 Не только.
>>55763 А что ещё?
>>55761 А, ну это известная вещь, да. Всё пытаюсь выкроить время для починки, лол, только всё некогда...
Все еще не работает автообновление треда.
>>56507 Р-работает же. Ну у меня п-по крайне мере.
>>56508 Не работает.
>>56509 С-странно у меня работает. Какой у тебя браузер напомни? И попробуй новый метод. Смайлофаг сказал, что починил его
Не работает удаление недавних постов по паролю.
>>56546 П-попробуй свой пароль там прописать. А не тот который генерируется
Кстати, вот это >>55852 я уже починил. >>56507 Как именно оно у тебя не работает? >>56546 Да, попробуй, что предлагает Ханако в >>56550, а еще можешь попробовать почистить куки и LocalStorage. Алсо, убедись, что в графе «пароль» в постбоксе при отправке поста, и в графе «пароль» рядом с кнопкой «удалить пост» одно и то же. Естественно, если у тебя браузер чистит куки, то если ты не сохраняешь пароль, то он каждую сессию генерится заново, и ты не сможешь тогда удалить пост из предыдущей сессии. Единственное решение в этом случае — сохранять пароль средствами браузера или ручками вписывать в каждое поле.
>>56553 Должен был быть один, прописанный вручную. Ну ладно. Автообновление у меня со старым методом не работает. Кстати, Хомура, может нам сделать смайлики таблицей? Или хотя бы не крутить скроллер как сейчас, а кликать вниз/вверх. Как в ворде выбор тех же стилей. И ты так и не починил форму отправки. Она все также передвигается (с кучей лагов) с помощью клика.
Открываю тред на последних 50 постах. Отвечаю в тред и меня отправляет в тот же тред но уже полностью развёрнутый. Почему не снова в последние 50 постов?
>>56562 >Должен был быть один, прописанный вручную. Это возможно, хоть и сложно, но нужно ли? Проблема с новым паролем после чистки кук от этого не исчезнет. >Автообновление у меня со старым методом не работает. Да я понял уже, а как именно не работает? Например: «не идут секунды», «не подгружает новые посты, хотя они есть» и т.п.? >Хомура, может нам сделать смайлики таблицей? Так у нас было таблицей, выяснилось, что оно много места занимает. >Она все также передвигается (с кучей лагов) с помощью клика. А как ещё её перетаскивать, кроме клика? А про кучу лагов — так таковы издержки яваскрипта, лол. >>56565 Хм, да, логично. Надо будет поправить. Записал в списочек, гляну, как вернусь.
>>56630 >Это возможно, хоть и сложно, но нужно ли? Проблема с новым паролем после чистки кук от этого не исчезнет. Мне показалось, что слетел установленный мною вручную пароль. >Да я понял уже, а как именно не работает? >«не подгружает новые посты, хотя они есть» Сам все понимаешь. >Так у нас было таблицей, выяснилось, что оно много места занимает. А вот на оставшееся ты внимание не обратил. >А как ещё её перетаскивать, кроме клика? То есть без лагов нельзя? Понятно. А если сделать отдельный элемент для перетаскивания (прямоугольничек, например) это ситуацию не изменит?
>>56646 >Мне показалось, что слетел установленный мною вручную пароль. Ну так введи ещё раз, браузеры иногда шалят. >Сам все понимаешь. Лол, вероятно, парсинг сломался. Новый метод работает? >А вот на оставшееся ты внимание не обратил. Ну вроде бы, раньше никому не мешало. =) >То есть без лагов нельзя? Ну я не то, чтобы разбирался, но у меня лагает не так сильно. Если это прямо проблема, могу попробовать посмотреть, но ничего не обещаю. >А если сделать отдельный элемент для перетаскивания (прямоугольничек, например) это ситуацию не изменит? Боюсь, нет — проблема в перерисовке элемента с position: absolute. Ладно, побегу я уже, пожалуй. Буду смотреть/чинить потом, в августе. А сейчас собираться и спать.
>>56630 Может быть тут когда-нибудь станет удобно.
>>56649 После удаления постов галочки остаются.
Перекатывайтесь с этого хостера На one.com низкие цены и год халявы — это конечно хорошо, но вы не одни такие умные. На одном серваке с вами куча сайтов. Процентов 90 из них на дырявом вордпрессе, можно ронять базу по кд, по типу того, что было в мае. Заплатить 4 бакса в месяц за не самый плохой wps не так уж много, по сравнению с безопасностью борды.
>>57914 Да, к-как раз собираемся переезжать
>>58445 Уже нашли хостинг? На https://lowendbox.com/ есть вкусные тарифы. Вплоть до 15-20$ в год за достаточно неплохие сервера. В продакшон их конечно нельзя, но для борды более чем достаточно. Вот, например. https://lowendbox.com/blog/dedistation-ddos-protected-openvz-vps-starting-15year-london-uk/
>>58496 П-пока нет. Большое с-спасибо за примеры.
Привет всем админам и посетителям Курисача! Завтра стартует наша имиджборда Хорахорач. Предлагаем обменяться ссылками, записать друг друга в «список друзей». Сорамимики MPT Ю-тян, Хохоеми-кун и Прорицатель.
Хома, када па несколько картинок в посте можна буде делати же?
>>56780 А чем сейчас неудобно? >>57524 Ок, записал. >>57914 Это в планах, как будет время — перекатимся, думаю. >>58496 О, спасибо за инфу. >>59094 Лол, у Ю-югенда новое название. =) Таки-где этот ваш хорахорач-то? Хоть посмотреть, что из того начинания получилось, лол. >>59374 Таки вроде как-то решили, что такая функциональность не нужна, остановились на видео+картинке, не более.
>>59642 Хорахорач — http://hohoemy.exach.com
>>60252 Заценил. Лол, почти 4к гет-то брать будете? — is a serious power. Как, Ханако, не возражаешь относительно предложения в >>59094 ?
>>60262 Д-да, пусть будут.
>>60277 И где вы нас разместили?
Тест
>>60375 Не спеши. Будет ссылка в фрейме.
>>60383
>>60386 Ох, лол! Т-ты сделал мой день.
>>60262> Заценил. Лол, почти 4к — is a serious power.Да какие 4к. Там нумерация постов вручную была вправлена, виден резкий скачок с ~200 сразу на ~3800.
>>60390 Кстати да, счётчик просто подкручен на 3500 постов.
>>60394 Вообще-то нас вайпали. 8-го августа утром.
>>60252 Всплывающие посты криво сделаны.
Предлагаю отключить поле «Имя». И сменить ужасную капчу.
>>60951 А ч-чем тебе поле Имя не нравится? Насчёт капчи п-посмотри в настройках Simple
>>60386 Лол, так проиграл с этой картинки, что немедленно выпил запилил ссылку. >>60951 Полем «Имя» многие пользуются, а капча — лучше такая, чем всё время выбирать всякие деревья и машины, например, или на которую ломалки распространены.
На всякий случай я просто оставлю очередной дамп трекера здесь. — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DELAYED (на сервере нет ImageMagick) — (NEW) в опере мини не грузится капча (major) (hard) — NEED INFO (путь решения неизвестен) — если нет куков, отдаются просроченные страницы (normal) (medium) — NEED INFO (теперь страницы генерятся динамикой; проверяйте, не починилось?) — при некоторых условиях пропадает трипкод и имя (minor) (medium) — NEED INFO (не могу воспроизвести; нужна инструкция по воспроизведению бага) — превьюшки генерить только в формате jpg (minor) (medium) — CANCELLED (всё-таки я подумал и решил, что лучше оставить, как есть: у нас слишком много png-превьюшек с прозрачностью, а также не каждый png весит больше jpg). — видео+картинка (major) (hard) — DONE — (NEW) микуоверчани н-не отправляет посты и пишет ошибку 301 (major) (hard) — CANCELLED Разработчику микуоверчана надо переправить http на https. — проверка размеров заливаемых пикч (major) (easy) — DONE — (NEW) поправить поиск — проценты дописать в запрос (major) (easy) — DONE — vimeo не отображает превьюшки видео (minor) (medium) — DONE — картинки, похоже, разворачиваются больше, чем надо (minor) (medium) — DONE — выпилить создание каталожных тамбнейлов (minor) (easy) — DONE — (NEW) картинка вылезает за край (minor) (easy) — DONE — (NEW) отдавать 404 на +50 и -100, где их нет (normal) (easy) — DONE — ускорить статистику в админке (minor) (easy) — DONE — автообновление косячит в режиме «последние 50 постов» и «первые 100 постов» (normal) (medium) — DONE — (NEW) ссылка на хорахорач во фрейме (minor) (easy) — DONE — (NEW) пикчу на страницу «ничего не найдено» (minor) (easy) — DONE (спасибо Рейму!) — сделать отправку по Ctrl+Enter настраиваемой (normal) (hard) — (NEW) допилить мобильный интерфейс (normal) (hard) — из превьюшек удаляются карты ответов при автообновлении (normal) (medium) — (NEW) в Microsoft Edge капча не грузится (normal) (medium) — разворот поста и всплывание меняет номер на 1 (normal) (easy) — скрытие постов по имени, тексту поста (minor) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — делать API для Суигинто [$_REQUEST, два вызова, thumb height, width] (minor) (hard) — (NEW) лагает при перетаскивании формы ответа (minor) (hard) — без капчи посты с куклы отправляются два раза (minor) (medium) — откуда-то лезет скроллбар и почему-то превьюшка вылезает за край (minor) (medium) — спойлеры картинок (minor) (medium) — cделать отдельно однопоток постов как на хорочане или как на хайбане (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — фрейм колбасит (см. пост 42066) (minor) (medium) — чтобы был и диалог открытия и превью по клику на зоне «перетащи файл сюда» (minor) (medium) — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — сделать, чтобы предпросмотр закрывался при отведении мышки (minor) (medium) — разворачивание поста на предпросмотре со страницы борд (см. пост 46341) (minor) (medium) — (NEW) при автообновлении пропадает карта ответов у постов не из этого треда (minor) (medium) — предпросмотр поста не закрывать при клике по кату (minor) (easy) — предпросмотр поста при правке глючит (minor) (easy) — шрифты захостить локально (minor) (easy) — (NEW) в поиске сделать, чтобы текст пропадал при клике (minor) (easy) — (NEW) в стиле Tomorrow не видны чёрточки, которые Рейму ставит (minor) (easy) — (NEW) ответ в +50 или -100 отправляет в тот же тред, но уже полностью развёрнутый (minor) (easy) — (NEW) после удаления постов галочки остаются (minor) (easy) Проверьте, ничего из реквестов не забыл? Алсо, Ханако, кинь сюда реквестики из конфочки, ок?
>>61494 Т-тут вроде все реквесты.
Ребята, а выложить исходники движка вы можете?
>>61640 А з-зачем тебе?
>>61640 Теоретически, я не вижу в этом проблемы — кусаба-таки открытое ПО, а если оно под лицензией GNU или подобной, то наши (и не наши) доработки (кусаба Х — кусаба-нульчан — курисаба) тоже дожны являться открытыми впрочем, в этой стране GNU юридической силы внезапно не имеет, хотя, конечно, это не повод её нарушать налево и направо. С другой стороны, код у нас пока весьма грязен стыдно показывать лол, да и баги, которые в нём могут быть, могут побудить мамкиных хацкеров попытаться дропнуть нам базу или снести какие-нибудь важные файлы, ничего не говоря. В общем, думаю, когда-нибудь, в светлом будущем, наверное, мы его-таки выложим (впрочем, конечно, если Ханако не против, то можно попробовать его выложить когда угодно, ладно уж). Капча «ЗОРЯНКИ». Это вроде птички такие. Интересно, к чему бы это?..
>>61691> а если оно под лицензией GNU или подобной, то наши (и не наши) доработки (кусаба Х — кусаба-нульчан — курисаба) тоже дожны являться открытымиНет. Если ты форкаешь жопаельное ПО и модифицируешь его, выкладывать код модификации ты не обязан. Только в случае если ты будешь её распространять, ты обязан это делать под жопаелью и, как следствие, прилагать исходники.Так вот, ты не распространяешь движок. Ты его форкнул и ты просто пользуешься форком, никто тебя не может обязать твой форк открыть. Использование ПО на публичном сервере != распространение ПО. А вот если ты его решишь открыть — то тут да, только жопаель.
>>61845 Хм, а кстати, да, верная мысль, я как-то не задумывался, что использование — не то же самое, что распространение. Не, ну то есть, это очевидно, но иногда бывает, что очевидные факты, возможно, из-за своей очевидности, как раз упускаются.
>>48357 Админяши, по какому адресу вам писать e-mail?
>>61927 >Админяши, по какому адресу вам писать e-mail? Насколько понимаю, akemi_homura@kurisa.ch
>>61929 Спасибо, няша, но я подожду официального ответа. Тортика вам!
>>61927 П-привет, Ю-тян. Как Смайлофаг з-зайдёт на Курисач думаю сразу же сообщит насчёт почты.
>>61939 А по вышеуказанному адресу писать нельзя?
>>61991 Можно.
>>61998 Хомура-нян! Тебе письмо!
А «разворачивать картинки до исходного размера», это же в полном размере когда?
>>62104 Д-да.
>>62063 Хомура-нян?
>>61865AGPL кстати обязывает выкладывать код даже если модификация используется на публичном сервере. А вот обычный жопаель — нет.
>>62123 >Хомура-нян? Ну, постой-постой. Я, например, последние пару дней от него не слышал никаких вестей вообще. Возможно, работы много или ещё каких дел.
>>62119 А у меня не работает.
>>62063 И ещё одно письмо!
>>62178 Если ты шёлкнешь по большой картинки, то там будет написано что-то вроде: «Картинка ужата на N% по размеру окна» и если ты поставишь галочку на: «Разворачивать картинки до исходного размера» то картинка будет Разворачиваться в полный размер. Или у тебя это не работает?
>>62222 Не работает
>>61929 В принципе, правильно понимаешь. =) >>62123 Да, до почты я добираюсь редко, плюс тут была совершенно сумасшедшая неделя, так что сорьки за ожидание. Вот и Рейму >>62133 правильно говорит. >>62247 Хм... Какой браузер, стоит ли кукла, на каком именно посте это не работает, например? Да, само собой, что разворачиваться больше размеров экрана будут только те пикчи, которые его больше, лол.
>>62355 Ничего страшного, няша. Иногда и у самой завал. Я там тебе ссылку выслала. Жду.
>>62523 Но у меня она почему-то не подсоединяется. Connecting to host, please wait — и всё.
>>62585 Теперь всё должно работать. Попробуй по новой ссылке.
>>62687 Как ты, Юно?
>>62687 Хм. Где? Мне ни в скайп, ни в почту ничего не прилетало. Капча ОТЛОЛ, лол.
>>62766 Великолепно, няша. Раны затянулись. Стала четверокурсницей. Погода на улице тоже радует. Всё складывается хорошо. >>62783 Я писала в скайп, но, если не пришло, напишу и на почту. Вам добра и тортик!
>>62783 Всё, отправила по мейлу. Только воспользуйся ссылкой поскорее — Скайп глючит и время от времени меняет ссылки!
Хомура-нян!...
>>62844 Попробовал вчера ночью — то же самое =( Там не нужно, например, чтобы оба были в онлайне? Я в скайпчике бываю в рабочие дни примерно с часу до четырёх часов ночи.
>>62962 Чёрт возьми. Оказывается, это неисправимый баг Скайпа. Дальнейшие инструкции вышлю по почте.
>>62962 Это не я пишу, няша. Это клон. Не переходи по присланным ссылкам и проверяй антивирусом.
>>62999 >>63003 Ну, не знаю, кто был клон, но у меня толку от переходов по ссылкам всё равно не было, так что тут без проблем. Может, не париться, и перейти в джаббер, например? Как минимум в одной конфочке я там участвую, брат жив на самом деле нет, но не умер, а его просто не было, лол.
>>63048> Как минимум в одной конфочке я там участвую, брат живКонфоблядь, фу таким быть!
>>63273 >фу таким быть! На себя бы посмотрела! =) У тебя там ещё и Чен хотя она няша, она хотя бы мне спокойной ночи желает, лол. А вообще юккури пикрелейтед щиттеитте не.
Итак, очередная ночь шатания курисабы подошла к концу, усталая Хомура пошла спать, а вы пока проверяйте багфиксы. — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DELAYED (на сервере нет ImageMagick) — если нет куков, отдаются просроченные страницы (normal) (medium) — NEED INFO (теперь страницы генерятся динамикой; проверяйте, не починилось?) — при некоторых условиях пропадает трипкод и имя (minor) (medium) — CANCELLED (не могу воспроизвести; нужна инструкция по воспроизведению бага; баг больше не всплывал) — в опере мини не грузится капча (major) (hard) — DONE (проверяйте, теперь не может не работать) — в Microsoft Edge капча не грузится (normal) (medium) — DONE (проверяйте, теперь не может не работать) — (NEW) сделать первоначальную загрузку капчи не javascript-ом, а вместе со страницей (normal) (medium) — DONE — чтобы был и диалог открытия и превью по клику на зоне «перетащи файл сюда» (minor) (medium) — DONE (только диалог открытия; точно ли надо превью?) — лагает при перетаскивании формы ответа (minor) (hard) — DONE (спасибо Рейму за это!) — сделать, чтобы предпросмотр закрывался при отведении мышки (minor) (medium) — DONE (галочка в настройках) — предпросмотр поста не закрывать при клике по кату, пикче, вебм или видео с ютуба/вимео/коуба (minor) (easy) — DONE — предпросмотр поста при правке глючит (minor) (easy) — DONE — (NEW) не работает удаление файла из поста (normal) (medium) — DONE — в стиле Tomorrow не видны чёрточки, которые Рейму ставит (minor) (easy) — DONE — после удаления постов галочки остаются (minor) (easy) — DONE — (NEW) в админке показывать все удалённые треды, а не первые 500 (minor) (medium) — DONE — (NEW) цитаты второго уровня сделать другим цветом (minor) (medium) — DONE — (NEW) автообновление косячит с первым ответом в треде (normal) (easy) — DONE — (NEW) в бэкапилке поменять адрес FTP-сервера (minor) (easy) — DONE — (NEW) тосаковский хардвер и /vn/ во фрейм (minor) (easy) — DONE — шрифты захостить локально (minor) (easy) — DONE — в поиске сделать, чтобы текст пропадал при клике (minor) (easy) — DONE — сделать отправку по Ctrl+Enter настраиваемой (normal) (hard) — допилить мобильный интерфейс (normal) (hard) — разворот поста и всплывание меняет номер на 1 (normal) (easy) — скрытие постов по имени, тексту поста (minor) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — делать API для Суигинто [$_REQUEST, два вызова, thumb height, width] (minor) (hard) — без капчи посты с куклы отправляются два раза (minor) (medium) — откуда-то лезет скроллбар и почему-то превьюшка вылезает за край (minor) (medium) — спойлеры картинок (minor) (medium) — cделать отдельно однопоток постов как на хорочане или как на хайбане (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — фрейм колбасит (см. пост 42066) (minor) (medium) — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — разворачивание поста на предпросмотре со страницы борд (см. пост 46341) (minor) (medium) — при автообновлении пропадает карта ответов у постов не из этого треда (minor) (medium) — ответ в +50 или -100 отправляет в тот же тред, но уже полностью развёрнутый (minor) (easy) — (NEW) сделать в админке кнопочку «восстановить тред» и «перекатить рандом», динамическое генерение номера /d/ и рандома (minor) (medium) — (NEW) делать FAQ (normal) (hard) — (NEW) ссылки FAQ, Каталог — в топ и во фрейм (minor) (easy) — (NEW) в API запрос статистики (minor) (easy)
>>63587 > удели пару минут этому FAQ-у, написанному специально для тебя. Что-то не увидел здесь никакого FAQ. Вы не могли сделать его хотя бы как предыдущее обращение? Хомурофаг, не ожидал от тебя. Тебе ведь даже тред посвятили...
>>63819 Лол, FAQ как раз был в процессе запиливания. Впрочем, он и сейчас пока ещё в процессе. Итак, сегодня у меня был весьма продуктивный день шатания курисабы. Думаю, запилю завтра API, а также разберусь с пропаданием карты ответов. Ну и FAQ доделаю. — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DELAYED (на сервере нет ImageMagick) — если нет куков, отдаются просроченные страницы (normal) (medium) — CANCELLED (теперь страницы генерятся динамикой; баг больше не всплывал, хотя, конечно, не факт, что исчез; если проявится вновь — переоткроем) — (NEW) доделать весёлый поиск (minor) (easy) — DONE — (REOPENED) сделать, чтобы предпросмотр закрывался при отведении мышки — глючит (minor) (medium) — DONE — ответ в +50 или -100 отправляет в тот же тред, но уже полностью развёрнутый (minor) (easy) — DONE — cделать отдельно однопоток постов как на хорочане или как на хайбане (minor) (medium) — DONE — сделать отправку по Ctrl+Enter настраиваемой (normal) (hard) — DONE (см. галочку в настройках) — допилить мобильный интерфейс (minor) (hard) — DONE (теперь вроде бы работает, по крайней мере у меня) — откуда-то лезет скроллбар и почему-то превьюшка вылезает за край (minor) (medium) — CANCELLED (это проявляется только на уже развёрнутых в посте картинках) — (NEW) cделать скрытие тредов в админке (normal) (medium) — DONE — (NEW) обновить картинки бана/разбана (minor) (easy) — DONE — (NEW) Ссылку на FAQ побольше размером на главной (minor) (easy) — DONE — ссылки FAQ, Каталог — в топ и во фрейм (minor) (easy) — DONE (каталог пока в топ не ставил, потому тчо тогда непонятно, к каой борде он будет) — разворот поста и всплывание меняет номер на 1 (normal) (easy) — DONE — сделать в админке кнопочку «перекатить рандом», динамическое генерение номера /d/ и рандома (minor) (medium) — DONE (не кнопочка, а целая страничка, лол) — разворачивание поста на предпросмотре со страницы борд (см. пост 46341) (minor) (hard) — DONE — делать FAQ (normal) (hard) — DONE (кроме мануала по борде) — (NEW) В FAQ запилить техдоку по борде (normal) (hard) — (NEW) cделать возможность постить из однопотока (normal) (medium) — делать API для Суигинто [$_REQUEST, два вызова, thumb height, width] (minor) (hard) — скрытие постов по имени, тексту поста (minor) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — при автообновлении пропадает карта ответов у постов не из этого треда (minor) (medium) — сделать в админке кнопочку «восстановить тред» (minor) (medium) — спойлеры картинок (minor) (medium) — без капчи посты с куклы отправляются два раза (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — фрейм колбасит (см. пост 42066) (minor) (medium) — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — в API запрос статистики (minor) (easy) — (NEW) из блоттера выпилить всё лишнее и вставить ссылку на FAQ (minor) (easy)
Капча в опере мини снова работает. Подтверждаю.
Хомура-нян! Тебе последнее письмо! Универсальная платформа найдена!
>>63962 А хотя нет. Постой. Сегодня-завтра тебе перешлю всё нужное.
>>48357 Письмо. На этот раз — точное. Приходи скорее, няша.
>>63988 Привет, няша. Для общения с хомурой можно использовать этот тред >>/sg/63684 .
>>63830 Ура! =) >>63988 Ок, сегодня посмотрю. >>63991 Там скорее научные разговоры, а то, что касается именно самой борды — лучше сюда, пожалуй.
>>64091 Зато в Edge хоть к-капча и появилась, но она не обновляется по щелчку. Ещё нельзя открыть опции и не работают ссылки во фреймсете. Кроме тех которые ведут не на курисач
>>64099 Поправлено. Новый пак обновлений: — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DELAYED (на сервере нет ImageMagick) — (NEW) В Chrome не работает String.prototype.contains() (major) (easy) — DONE — (NEW) В Edge не работают дефолтные параметры функций javascript (normal) (easy) — DONE — (NEW) Замещение ссылок распространить на все файлы (minor) (easy) — DONE — (NEW) Выпилить старый метод обновления, ставший несовместимым с однопотоком (minor) (easy) — DONE — (NEW) cделать возможность постить из однопотока (normal) (medium) — DONE — из блоттера выпилить всё лишнее и вставить ссылку на FAQ (minor) (easy) — DONE — при автообновлении пропадает карта ответов у постов не из этого треда (minor) (medium) — DONE — сделать в админке кнопочку «восстановить тред» (minor) (medium) — В FAQ запилить техдоку по борде (normal) (hard) — делать API для Суигинто [$_REQUEST, два вызова, thumb height, width] (minor) (hard) — скрытие постов по имени, тексту поста (minor) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — спойлеры картинок (minor) (medium) — без капчи посты с куклы отправляются два раза (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — фрейм колбасит (см. пост 42066) (minor) (medium) — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — в API запрос статистики (minor) (easy)
>>64091 Мы «начинаем». Приходи в наш уютный круг.
>>64170 Нет, это лучше ТЫ приходи в наш уютный круг. У нас есть тортики. Возвращайся на курисач (kurisa.ch — курисач) в рандом тред.
>>64170 Завтра (ну, уже сегодня) вечерком, думаю, почитаю и отвечу. Итак, Гин, и все, кто хотел, теперь у нас есть API! Точка входа — https://kurisa.ch/api.php. Передавать параметры можно: — напрямую (JSON raw data в теле запроса GET или POST); — как данные формы (GET или POST); — как JSON, инкапсулированный в поле «json» формы (GET или POST). Передаются данные в соответствии с JSON RPC/1.0: скрипту — {id, method, params} от скрипта — {id, error, result}. В случае ошибки result содержит поле message с текстом сообщения, error — соответствующий код возврата HTTP. Иначе error = null, а result содержит нужные данные. Специальные типы элементов ассоциативных массивов:<BOARD>: "id":string => {"name":string, "captchaenabled":bool} <POST>: "id":integer => {"id":integer, "thread":integer, "subject":string, "name":string, "tripcode":string, "email":string, "datetime":unixtime, "filename":string(or ''), "filetype":string(or ''), "filesize":integer, "pic_w":integer, "pic_h":integer, "thumb_w":integer, "thumb_h":integer, "text":string, "reflinks":Array of {"board":string, "id":integer}} Процедуры:'get_boards' => Get board list. Request: none. Response: Array of <BOARD>s. 'get_thread' => Get every post in a thread. Request: {"board":string, "thread_id":integer} Response: Array of <POST>s (including OP). 'get_updates_to_thread' => Get every post in a thread after chosen timestamp. Request: {"board":string, "thread_id":integer, "timestamp":unixtime} Response: Array of <POST>s(with timestamp > "timestamp" from request). 'get_thread_ids' => Get every post number in a thread. Request: {"board":string, "thread_id":integer} Response: Array of integers representing post numbers ([0] = OP). 'get_posts_by_id' => Get specified posts from a board. Request: {"board":string, "ids":Array of integers} Response: Array of <POST>s. 'get_part_of_board' => Get part of board. Request: {"board":string, "start":integer(number of thread to start from, counting from 0), "threadnum":integer(how much threads), "previewnum":integer} Response: Array[threadnum(max)] of ("opflags":{"stickied":bool,"locked":bool}, "numreplies":integer(OP does not count), "numpicreplies":integer(OP does not count), "op":<POST>, "lastreplies":Array[previewnum(max)] of <POST>s). 'get_stats' => Get statistical values. Request: {"type":"postslastday"|"postslasthour"} Response: {"result":integer} Вроде бы, по ощущениям в целом работает, но возможны мелкие косяки (без оконечного парсера сложно разбирать вывод). Проверяйте, короче. Обо всех косяках пишите, естественно, сюда.
<BOARD>: "id":string => {"name":string, "captchaenabled":bool} <POST>: "id":integer => {"id":integer, "thread":integer, "subject":string, "name":string, "tripcode":string, "email":string, "datetime":unixtime, "filename":string(or ''), "filetype":string(or ''), "filesize":integer, "pic_w":integer, "pic_h":integer, "thumb_w":integer, "thumb_h":integer, "text":string, "reflinks":Array of {"board":string, "id":integer}}
'get_boards' => Get board list. Request: none. Response: Array of <BOARD>s. 'get_thread' => Get every post in a thread. Request: {"board":string, "thread_id":integer} Response: Array of <POST>s (including OP). 'get_updates_to_thread' => Get every post in a thread after chosen timestamp. Request: {"board":string, "thread_id":integer, "timestamp":unixtime} Response: Array of <POST>s(with timestamp > "timestamp" from request). 'get_thread_ids' => Get every post number in a thread. Request: {"board":string, "thread_id":integer} Response: Array of integers representing post numbers ([0] = OP). 'get_posts_by_id' => Get specified posts from a board. Request: {"board":string, "ids":Array of integers} Response: Array of <POST>s. 'get_part_of_board' => Get part of board. Request: {"board":string, "start":integer(number of thread to start from, counting from 0), "threadnum":integer(how much threads), "previewnum":integer} Response: Array[threadnum(max)] of ("opflags":{"stickied":bool,"locked":bool}, "numreplies":integer(OP does not count), "numpicreplies":integer(OP does not count), "op":<POST>, "lastreplies":Array[previewnum(max)] of <POST>s). 'get_stats' => Get statistical values. Request: {"type":"postslastday"|"postslasthour"} Response: {"result":integer}
>>64171 >Возвращайся на курисач Лол, петухи друг к другу тянутся.
Итак, курисаба-нян потихонечку становится милой безглючной няшей! Я поправил большинство багов и выполнил большинство реквестов, осталось всего два, лол. Ещё, судя по всему, стоит перепроектировать постбокс и шапку борды, но это надо будет решить, как. — длинные скрипты в админке вызываются два раза (minor) (hard) — DELAYED (таких скриптов уже нет; а вообще проблема сервера, если решим переехать — починим) — есть проблемы с символами utf8mb4 (minor) (hard) — DELAYED (похоже, проблема сервера, если решим переехать — починим) — превьюшки вембок генерить (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DELAYED (проблема сервера, если решим переехать — починим) — сделать https от клауды до Курисача (minor) (easy) — DELAYED (проблема сервера, если решим переехать — починим) — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DELAYED (на сервере нет ImageMagick) — сделать переключение английского и русского интерфейса (minor) (hard) — DELAYED (будем делать вместе с вычищением кода после всех остальных правок) — В FAQ запилить техдоку по борде (normal) (hard) — DELAYED (запилим, когда приведём настройки, постбокс и пост в нормальное состояние) — (NEW) горизонтальный вариант постбокса (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — (NEW) разбить опции, переформатировать шапку (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — делать API для Суигинто [$_REQUEST, два вызова, thumb height, width] (minor) (hard) — DONE — в API запрос статистики (minor) (easy) — DONE (какая статистика ещё нужна — говорите, сделаю) — (NEW) в API проверку на пустую строку, добавить ключи «skipreflinks», «msgtype»:{«source»|«parsed»} (minor) (easy) — DONE (теперь любому запросу, возвращающему посты, можно передать жти параметры). — (NEW) предпросмотр сломался (minor) (easy) — DONE — (NEW) «что-то пошло не так» на фрейме (minor) (easy) — DONE — скрытие постов по имени (minor) (hard) — DONE скрываются только ответы, но не оп-посты. Список скрытых неймфагов чистится в настройках. — скрытие постов по тексту поста (minor) (hard) — DONE скрываются только ответы, но не оп-посты; пост не будет скрываться на странице борд, если «запрещённый» текст у него не показан. Текст вводится в настройках. — скрытие отдельных постов, навроде кнопочки скрытия треда, только для постов (minor) (medium) — DONE скрываются только ответы, но не оп-посты. Список скрытых постов чистится в настройках. — без капчи посты с куклы отправляются два раза (minor) (medium) — CANCELLED проблема была во включенном автообновлении: пост не отправлялся два раза, а показывался два раза (его показывало автообновление как куклы, так и курисабы). Потом было сделано автовыключение настроек, малосовместимых с дефолтными настройками куклы при первом заходе с куклой, и этот баг должен пропасть. — фрейм колбасит (см. пост 42066) (minor) (medium) — CANCELLED (похоже, баг исчез после разнообразных правок движка, не могу воспроизвести). — спойлеры картинок (minor) (hard) — DONE — (NEW) галочку «отправка через js» в настройки из постбокса (minor) (medium) — DONE — сделать в админке кнопочку «восстановить тред» (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium)
Что такое с бордой? Быстрый ответ не работает, ссылки на посты тоже.
>>64468 Что з-за браузер?
>>64473 Огнелис
>>64474 С-странно. У меня работает. Кэши/куки чистил?
Хомура, можешь запилить скрытие ответов на скрытый пост?
>>64692 Это точно хорошая идея? Рефлинк, встретившийся в посте — вовсе не обязательно ответ, кроме того, у нас часто отвечают на много постов сразу в одном ответе. Кроме того, это очевидно не будет работать между тредами и на страницах борд.
>>64704 Ну, нет так нет.
Хома, запили скрытие ответов на скрытые посты, чтобы можно было скрывать посты, когда скрываешь посты.
>>64708 Давай тогда уж сразу скрытие возможности скрытия скрытых ответов на скрытые посты в скрытых постах! =) сразу xzibit в квадрате в квадрате, лол.
Во время шатаний Курисабы возникла у меня такая мысль: Если уж основные треды задаются теперь переменными, то почему бы не создать редиректы вида: 'https://kurisa.ch/d/'; -> '/d/ — тред' 'https://kurisa.ch/vid/'; -> '/vid/ — тред' 'https://kurisa.ch/206/'; -> 'Anime — тред'
>>65255 Спасибо, записал.
А можно сделать прикрепление картинок через ctrl+v? Как в вк и на имгуре.
>>65607 Хм... Можешь описать подробнее, как ты этот механизм видишь на Курисаче? Алсо, хочу сказать вот что: Сегодня ночью, примерно с 3:00 на Курисаче будут технические работы, соответственно, он будет недоступен. Зато после них появится несколько новых функций, а также, быть может, он станет немножко быстрее. В идеале, думаю, справимся где-то за полчаса, если не будет проблем. Приносим извинения за доставленные неудобства лол и юккури пикрелейтед щиттеитте не.
>>65682 > Хм... Можешь описать подробнее, как ты этот механизм видишь на Курисаче? Ну я пишу пост, копирую где-то картинку, жму ctrl+v и она прикрепляется к посту. Попробуй в вк, понятно станет. inb4 даже фейка нет
>>65684 >> Хм... Можешь описать подробнее, как ты этот механизм видишь на Курисаче? Ну, как вк: закидываешь ссылку на картинку, и она автоматически прикрепляется в формочку вставки ссылки. >inb4 даже фейка нет Нет, есть. Нас же там 30 админов в конфочке. Мимо пробегающая Рейму.
>>65684 >копирую где-то картинку Копируешь где-то картинку (например, по ctrl+v из пеинта) или ссылку на картинку? Если второе, то у нас же есть поле «ссылка», туда и можно сделать Ctrl+V. Автоматически копипастить туда ссылки, появляющиеся в поле ввода текста я не хочу — это меня здорово бесит на том же контаче, когда я хочу кинуть ссылку, а вместо нее отправляется пикча или кусок сайта, потому что контакт опять неправильно меня понял. Само собой, «я не хочу» — не аргумент, и если многие здесь выскажутся за эту фичу, то придётся сделать.
>>65766 Прикреплять картинку по ctrl+v если в буфере изображение а не текст же.
>>65766 >Само собой, «я не хочу» — не аргумент, и если многие здесь выскажутся за эту фичу, то придётся сделать. Хомура справедливая.>>65767 Вот уж не знаю о реализуемости этого.Это довольно новая фишка. И я не знаю, как она пойдёт. Технически не такая уж простая, но тоже вполне годная для исполнения её.
У вас прикрепление по ссылке отвалилось.
>>65767 Вот сейчас проверил — на вкшечке не работает (как минимум у меня). Взял пеинт, открыл пикчу внезапно с Ханюю лол, вырезал её кусочек и попытался за ctrl-v-ить в поле ввода мессаги в контактике — не получилось. Но ладно, я записал, подумаю, что с этим можно сделать. >>65837 Это just as planned. =) После переезда мы решили немного засекурить Курисач, а это — канал утечки IP. Поэтому временно отключили. Сегодня, вероятно, починим.
А можно сделать, чтобы, когда открыты последние 50 постов треда, при нажатии на номер поста не загружался весь тред целиком, а просто добавлялась ссылка в форму ответа?
>>66187 Для этого надо нажимать на номер поста, а не на буквы «No.».
>>66225 Но вопрос был не в этом. Когда нажимаешь на номер поста на странице с последними 50 постами, то страничка перезагружается и открывается весь тред целиком.
>>66249 Хм, лол, и правда — номер вставляется в форму, но страница тоже перезагружается. Записал, починю. Капча ОЯРРАК, но я не рак!
Итак, очередной пак исправлений (я просто оставлю это здесь). — «https://kurisa.ch/sg» переводит на «http://kurisa.ch/sg/» (minor) (hard) — DONE — анимированные превьюшки, выключенные по дефолту (minor) (medium) — DONE — (NEW) автообновление виснет при наличии закрытых всплывающих постов (normal) (medium) — DONE — (NEW) тормоза при всплывании постов в больших тредах (normal) (medium) — DONE — (NEW) сделать в API возможность парсить params как JSON, если он передан полем формы (minor) (easy) — DONE — (NEW) сделать в API возможность параметры давать полями формы, а не оборачивать в params (minor) (easy) — DONE — длинные скрипты в админке вызываются два раза (minor) (hard) — DONE — есть проблемы с символами utf8mb4 (minor) (hard) — DONE — сделать https от клауды до Курисача (minor) (medium) — DONE (HSTS тоже включили) — (NEW) поднять VPN и вновь разрешить загрузку файлов по ссылке после переезда (normal) (medium) — DONE (вновь спасибо Рейму!) — (NEW) генератор фраз в поиске сломался (minor) (easy) — DONE — (NEW) анимированный предпросмотр при развороте и сворачивании пикчи пропадает (minor) (easy) — DONE — (NEW) при отключенной галочке «разворачивать ссылки на видео» видео иногда разворачивается (minor) (easy) — DONE — (NEW) когда нажимаешь на номер поста на странице с последними 50 постами, то страничка перезагружается и открывается весь тред целиком (normal) (easy) — DONE — (REOPENED) неймы (и трипкоды) слетают (normal) (easy) — DONE — сделать переключение английского и русского интерфейса (minor) (hard) — DELAYED (будем делать вместе с вычищением кода после всех остальных правок) — В FAQ запилить техдоку по борде (normal) (hard) — DELAYED (запилим, когда приведём настройки, постбокс и пост в нормальное состояние) — горизонтальный вариант постбокса (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — разбить опции, переформатировать шапку (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — (NEW) спросить, что будет, если расширять тариф в середине срока (normal) (easy) — IN PROGRESS — (REOPENED) иногда капча не работает (normal) (easy) — IN PROGRESS — превьюшки вембок генерить (minor) (hard) — сделать в админке кнопочку «восстановить тред» (minor) (medium) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — (NEW) сделать шапку для скрытых постов (minor) (medium) — (NEW) сделать заливку mp3 (minor) (medium) — (NEW) сделать линки на спецтреды в виде линков на доски (minor) (easy) — (NEW) сделать, чтобы можно было вставлять картинку из буфера обмена (minor) (hard) — (NEW) приделать автообновление к однопотоку (minor) (medium) — (NEW) сломался детектор агентов организации (minor) (easy) — (NEW) пикчи, webm и видео открывать по центру страницы по клику с Ctrl (minor) (medium) — (NEW) поиск сурса картинок по кнопкам в заголовке поста (minor) (easy)
>>65767 Насчёт вставки пикчи по Ctrl+V: у меня не получается как-то вставить именно изображение в буфере в браузер: ни в контакте, ни где-либо ещё. Однако вставить файл с изображением получается (как в контактике, так и в скрипте, что я сейчас пробую запилить). Разница между этими двумя вещами в том, что в первом случае это именно что изображение, скопированное, например, из графического редактора; например, в паинте выделил кусок изображения и скопировал в буфер. Во втором случае это именно файл, например, в эксплорере выделил какой-то файл и скопировал в буфер уже его. У тебя какой из этих случаев? В общем, вставку во втором случае я могу попробовать реализовать, а вот как поступать в первом — не знаю. Кстати, у кого есть хром, сафари, IE или Edge — попробуйте проверить, вообще у кого-нибудь вставляется именно кусок изображения в тот же контактик?
>>66538 У меня работает в хроме и не работает в лисе
>>66538 Вот так включается в лисе https://developer.mozilla.org/en- US/docs/Mozilla/Projects/Midas/Security_preferences >Кстати, у кого есть хром, сафари, IE или Edge Ты пердолишь фронтэнд и не имеешь браузеров для теста?
>>66538 А вот тут даже реализация с хаком для лисы есть.
>>66539 Ох лол, очередная некроссбраузерная фича. Опять писать эти вереницы проверок... Ладно уж, попробую и для хрома что-то запилить. >>66540 >Вот так включается в лисе Погоди, это же не обращение к event.clipboardData в событии onpaste, а наоборот, вызов методов copy и paste самим скриптом? Это мне не нужно для такого. >и не имеешь браузеров для теста? Ну как-то не от хорошей жизни это, а оттого, что больше почти некому, кроме, разве что, Рейму. >>66541 Где? У меня просто отстуствует элемент items в event.clipboardData, на котором построены большинство примерчиков со stackoverflow. Атрибут contenteditable не помогает. Разве что вот этот костыль юзать, но не знаю, поможет или нет. Короче, пойду спать, а завтра попробую.
>>66543 Бля, а ссылку то проебал, держи https://stackoverflow.com/questions/18377891/how-can-i-let-user-paste-image-data-from-the-clipboard-into-a-canvas-element-in
>>66545 >link Да, хорошая штука. Подтверждаю работоспособность на Лисе. Кстати, хорошо зайдёт с вот этим вот по имени «toDataURL».
>>66545 >>66651 После ночи исследований я-таки запилил это. Нормально, если картинка вставляется только когда курсор не стоит в текстовом поле? То есть, если поставить курсор в текстовое поле — то можно пастить туда текст; если кликнуть где-то вне его — то можно вставить картинку в пост из буфера. P.S. Спасибо за ссылки, анон-кун и Рейму.
Мне порой кажется, что ты попросту ненавидишь Хромоногих. За что? Жизнь и так наградила нас целой пачкой анальных зондов, зачем ты заставляешь страдать нас ещё сильней? Алсо перепечатаю тебе сюда реквест: Перенести название доски, форму поиска и каталог в панель настроек и растянуть её по всей ширине окна.
>>66744 >Мне порой кажется, что ты попросту ненавидишь Хромоногих. Судьбою предначертано вам страдать, раз механизм вставки у вас отличается от кицуняшкиного! =) В общем, поправил, да. >Перенести название доски, форму поиска и каталог в панель настроек и растянуть её по всей ширине окна. Ок, записал.
>>67110 У м-меня так и не заработала вставка текста.
>>67184 Потому что ты мудак и руки у тебя из жопы.
У меня дублируются сообщения, при отправке. Потом и вовсе исчезают, не смотря на то, что удалял свои же, продублированные непонятно как, сообщения.
>>67266 У т-тебя кукла и хром?
>>67267 Верно. Точнее, уже отключил куклу на этом сайте.
>>67271 К-кукла у нас плохо работает. Её надо либо отключить либо настроить.
>>67285 Спасибо за советы. Я просто ограничусь местным функционалом.
>>67184 Хм... Попробуй кэш почистить и/или страницу обновить? >>67266 Они не дублируются, они просто загружаются два раза: один раз — автообновлением движка, второй раз — автообновлением куклы. Одно из них надо отключить. На браузерах, которые позволяют увидеть присутствие куклы, при первом входе фишки движка, дублирующие фишки куклы, автоматически отключаются; на хроме же это сделать невозможно, потому что наличие куклы увидеть возможности нет, увы.
Вот так главная выглядит на планшете. Ссылка на faq нехорошо лежит.
Можно добавить ещё Курису на главную.
>>67688 Б-больше Курису? Я не против.
>>67523 Добавил, поправлю. >>67688 Кинь исходник в виде png с прозрачностью размером порядка 400х800 или больше, я добавлю.
Хомура-нян, зову тебя пить чай с тортиками.
>>68097 О, кстати да, давно я у вас не был. =) Сегодня ночью загляну.
>>68097 Хотя нет, загляну завтра (уже сегодня, да) вечером. Сорри, этой ночью не сумел. Алсо, ещё заметная пачка багфиксов и НОВЫЙ_ИНТЕРФЕЙС!!11один1 подъехала: — сделать переключение английского и русского интерфейса (minor) (hard) — DELAYED (будем делать вместе с вычищением кода после всех остальных правок) — В FAQ запилить техдоку по борде (normal) (hard) — DELAYED (запилим, когда приведём настройки, постбокс и пост в нормальное состояние) — горизонтальный вариант постбокса (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — разбить опции, переформатировать шапку (minor) (hard) — DELAYED (делаем дизайн с Рейму и Тосакой) — (NEW) сворачивание превьюшек пикч обратно сломалось (minor) (easy) — DONE — (NEW) сломался фрейм (minor) (easy) — DONE — сломался детектор агентов организации (minor) (easy) — DONE — сделать, чтобы можно было вставлять картинку из буфера обмена (minor) (hard) — DONE — (NEW) (REOPENED) вставка текста в хроме сломалась (major) (easy) — DONE — (NEW) анимированные превьюшки неправильно создаются, если gif загружается под видом jpg или png (normal) (easy) — DONE — (NEW) добавить в API поля animated и spoiler для информации о типе пикчи (minor) (easy) — DONE — (NEW) перенести почту с one.com на zoho.com (normal) (easy) — DONE — (NEW) спросить, что будет, если расширять тариф в середине срока (normal) (easy) — DONE — (NEW) при вставке теряется фокус (курсор пропадает из поля ввода) (normal) (easy) — DONE — сделать в админке кнопочку «восстановить тред» (minor) (medium) — DONE (и даже были восстановлены, насколько это было возможно — т.е. без хайрезов и с поломанной разметкой, пачка тредов, с которых начинался Курисач) — сделать заливку mp3 (minor) (medium) — DONE (ещё OGG сделал для любителей опенсорса) — поиск сурса картинок по кнопкам в заголовке поста (minor) (easy) — DONE — (NEW) перенести название доски, форму поиска и каталог в панель настроек и растянуть её по всей ширине окна (minor) (easy) — DONE — (REOPENED) иногда капча не работает (normal) (easy) — IN PROGRESS — превьюшки вембок генерить (minor) (hard) — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — сделать шапку для скрытых постов (minor) (medium) — сделать линки на спецтреды в виде линков на доски (minor) (medium) — приделать автообновление к однопотоку (minor) (hard) — пикчи, webm и видео открывать по центру страницы по клику с Ctrl (minor) (hard) — (NEW) ссылка на FAQ залезает под нижнюю полосу на маленьких экранах (minor) (easy)
Очередная ночь шатаний курисабы. Одни харды остались, лол. =) — сделать переключение английского и русского интерфейса (minor) (hard) — DELAYED (будем делать вместе с вычищением кода после всех остальных правок) — В FAQ запилить техдоку по борде (normal) (hard) — DELAYED (запилим, когда приведём настройки, постбокс и пост в нормальное состояние) — упорядочить постбокс (minor) (hard) — DELAYED (после перехода к одному постбоксу) — (NEW) удалить логирование капчи (minor) (easy) — DELAYED (если у всех будет работать) — разбить опции (minor) (hard) — CANCELLED (галочек, как я смотрю, у нас не настолько много) — (NEW) микуоверчан время и имена не показывает (minor) (easy) — DONE (с моей стороны всё, остальное — дело Мику, баг я ему написал) — (NEW) ссылка на FAQ залезает под нижнюю полосу на маленьких экранах (minor) (easy) — DONE — (NEW) сделать (You) (minor) (easy) — DONE — (NEW) json_decode при автообновлении сыплет warning-и (minor) (easy) — DONE — (NEW) восстановление восстанавливало треды и посты с обеих борд (major) (easy) — DONE — сделать улучшенный хеш для бана, чтобы он высчитывался без последних 2-5-10 байт (minor) (medium) — DONE — сделать линки на спецтреды в виде линков на доски (minor) (medium) — DONE — (REOPENED) иногда капча не работает (minor) (hard) — DONE (см. ниже) — превьюшки вембок генерить (minor) (hard) — сделать шапку для скрытых постов (minor) (hard) — приделать автообновление к однопотоку (minor) (hard) — пикчи, webm и видео открывать по центру страницы по галочке в настройках (minor) (hard) — (NEW) перейти к одному постбоксу вместо двух (minor) (hard) — (NEW) перейти к одному шаблону поста вместо четырёх (minor) (hard) P.S. Насчёт капчи. В теории, она должна починиться (у меня вроде починилась), хотя в логах у меня почему-то этого не видно. Если у кого-то по-прежнему иногда ругается на точно правильную капчу — просьба сообщить, перед этим запомнив, что за капча была введена (я поищу в логе именно эту капчу и посмотрю, в чём дело), а также сказав, что за браузер и включена ли кукла.
>(You) Спасибо, Хомура. Правда, в основном имелось ввиду добавление «You» после цитирования. Как-то так так: >>68438 (You)
>>68438 >— (NEW) сделать (You) (minor) (easy) — DONE И багрепорт. При отключенном в настройках You после отправки поста оно все равно появляется в этом посте, исчезает после обновления страницы.
В портретном режиме экрана меню наползают друг на друга. Алсо после последних шатаний на опере перестал работать энтер в форме ответа. В прямом смысле перестал работать, при нажатии курсор не переходит на следующую строку, в остальных браузерах работает нормально. миморин
Тест.
>>68525 Тест2
>>68495 >В портретном режиме экрана меню наползают друг на друга. К сожалению. Это костыль, в котором я пригвоздил вторую, иначе постоянно бы наползало, и вообще невозможно было бы открыть настройки, например.
>>68458 >>68492 Всё пофикшено. >>68495 Насчёт меню: что предлагаешь делать в таких случаях? Могу z-index левой менюшки поднять, но тогда поиск будет вообще недоступен и всё время будет скрываться под левой менюшкой. Сейчас просто можно прокрутить вверх. Насчёт enter-а: посмотри, в консоли при этом ничего не появляется? Алсо, в обычном хроме (если опера на хромиуме) при этом нормально всё?
Хомура, а куда подевались все настройки?
>>68679 Эээ... вроде на месте же, как и всегда.
>>68679 Евреи спиздили!
Каких умных книжек почитать чтобы научиться анализировать, проектировать всякое? Хотелось бы встряхнуть свои 22 летние мозги в области разработки. Тут, вроде бы, сидят люди из этой области.
>>68761 Что проектировать? Железо или софт? В какой области? Насчёт железа — не помешает Хоровиц-Хилл и Харрис-Харрис, потом двухтомник Джонсона-Грэхема. Насчёт софта — крутую (возможно, слишком крутую) теоретическую базу дадут Кнут и, вероятно, Абельсон-Сассман. Но если речь идет о чём-то более конкретном (как в железе, так и софте) — то тут надо смотреть область. Хэндбук альтеры, например, может быть вдесятеро полезнее, чем весь Харрис-Харрис — для ситуации, когда быстро надо запилить высокоскоростную FIFO на FPGA, лол. А вообще, работа в соответствующей области повышает скиллы на порядок эффективнее любых книжек.
>>68607 >Насчёт меню: что предлагаешь делать в таких случаях? Я бы предложил забить если бы эта проблема не всплывала на всех экранах где недостаточно места чтобы разместить эти менюшки, а не только у любителей портретного как я. В первую очередь страдать будут все пальцетыкатели. Так что тут либо смириться с тем фактом, что для мобильного интерфейса нужно в корне перепиливать внешний вид борды либо пытаться сделать как было задумано изначально в одну строку, но с этим как я понял тоже технические проблемы. Я загляну в конфу ближе к выходным. Что касается энтера в опере то это походу проблема конкретной оперы на конкретном ПК. На хроме и операх на других пк в доме всё работает нормально, это я проверил. Как будет возможность поработать за основным пк посмотрю пишет ли чего консоль.
>>68829 >В первую очередь страдать будут все пальцетыкатели. То есть, ты говоришь о тех, у кого менюшка прикреплена? Потому что по дефолту она не прикреплена, и в топе страницы можно пользоваться поиском, а крутанув страницу чуть вверх, так, чтобы поиск уехал — настройками. В одну строку сделать — это надо перепиливать js менюшки; конечно, можно так сделать, но стоит ли игра свеч? Ну и на узких экранах, само собой, она будет либо уезжать на край, либо начинать переноситься в ненужных местах, если не предпринимать каких-то хитростей на этот случай. >это походу проблема конкретной оперы на конкретном ПК. Помню, у меня еще на одном экземляре престовой ещё оперы, версии 8.51, не работал Ctrl+Enter — причём никакими методами его заставить работать не получалось, причем та же версия оперы на других компах под той же осью (тогда это была 98-ая) работала отлично. Так что для оперы, похоже, это норма, лол.
Вроде криво сделал чтобы при ответе в версии +50 в ней же и оставался. Молодец. Теперь бы неплохо было оставлять в этой версии только 50 постов. И блять когда уже можно будет убрать форму ответа внизу? Торчит хрен знает за чем.
>>69116 >за чем За шкафом. Ту пой ты де бил.
>>69116 >криво А точнее? >Теперь бы неплохо было оставлять в этой версии только 50 постов. То есть, удалять верхние посты при автообновлении? Разве ж это логично? К примеру, читаешь ты пост — а он пропадает, первая реакция — «удалили?». Вопрос к остальным тогда: как вы считаете, при автообновлении последних 50 постов и однопотока надо убирать с другого конца посты, которые не вмещаются в лимит?
>>69156 Нет, не нужно. Не слушай этого хуя, оставь как есть. И форма ответа внизу очень удобна, имхо.
>>69153 Ну ошибся. Нахуй иди. >>69156 Один раз весь тред открыло при ответе в +50. Странная реакция. Дополнительной опцией можно сделать. Форму просто чтобы скрывать можно было.
>>69162 >Нахуй иди. На хуй твоя жо па хоро ша, пе тух.
У мну на хроме настройки не работают, просто перекидывает вверх страницы.
Не знаю, что вы там сделали, но теперь в опере мини странички не перезагружаются после ввода текста в поле, как было раньше. Спасибо, мистер Хомурец. Спасибо, мистер Реймец.
>>69173 А что-нибудь в консоли появляется? btw: чистка кэша не помогает? >>69204 В каком из режимов (обычном/экономия трафика)? После ввода текста в какое именно поле? Перезагружаться они должны не при вводе текста, а при каком-то действии (отправке поста, удалении, поиске и т.п.). При каком действии это происходит?
>>69311 Ты всё не так понял, Хомурец. Это «спасибо» без иронии. Раньше была проблемка (см. >>29832), а теперь всё норм.
>>69316 А, лол, тогда хорошо. Пожалуйста. =) Тогда насчёт >>69116 и >>69159 предлагаю подумать над каким-нибудь компромиссом. >>69162 >Один раз весь тред открыло при ответе в +50. Если бы ты ещё ссылку привёл, по которой так открывается — было бы хорошо. >Дополнительной опцией можно сделать. Можно, только это не так просто. Ну и опций на каждый чих у нас что-то многовато становится. Просто если это реально мешает — то ок, могу сделать, но это может отвлечь время от более полезных вещей. >Форму просто чтобы скрывать можно было. Так она, вроде, и так скрывается? И да, я всё ещё жду ответа от >>69173: что-нибудь в консоли появляется? чистка кэша не помогает? Алсо, я случайно вспомнил — просили запилить эмбеды с некоего «простоплеера», соответственно, желающих это прошу кинуть мне хотя бы ссылку, где такие эмбеды есть.
Можно ли кнопочку которую я обвёл сместить чуть в право?
Интерфейс burichan капча сливается с фоном. В мобильной версии строка поиска перекрывает все верхнее меню
>>69585 Нет, не появляется, сэра. Нет, не помогает. Ну правда я ещё выяснил что в Огнелисе всё как следует работает и настройки разворачваются. Что поделать, видать хромоги снова соснули.
>>69658 Как не странно, у меня на хроме все работает.
>>69623 Записал. Думаю, просто поле слегка укорочу, чтобы кнопочка на него не налезала. >>69654 >Интерфейс burichan капча сливается с фоном. Записал, поправлю. >В мобильной версии строка поиска перекрывает все верхнее меню Мы работаем над этим. =) Вернее, пока просто не знаем, как сделать нормально. Есть ли какие-нибудь мысли, как запилить поиск, чтобы он остался почти на том же месте, и при этом на прокрученной вверх странице на него не налезало меню? >>69658 Какая-то странная вещь, мда. У тебя тач-интерфейс или десктопный? (определяется так: если у тебя между «однопотоком» и «настройками» в меню ссылка «Борды» — то десктопный, если список «Доски» — то тач). В десктопном интерфейсе настройки должны открываться по наведению, а клик да, будет перекидывать вверх страницы (впрочем, можно это убрать). В тач-интерфейсе настройки, очевидно, должны открываться по клику (при этом перекидывания вверх страницы, естественно, быть не должно). Капча ЛОЛПАСУ, это как нянпасу, только лол. =)
>>69903 Как насчет увеличить свободное место между ссылками «каталог» и «главная» и тогда чуть «похудевшие поиск и »перейти" поставить в столбик и втиснуть в это свободное место. Налезать немного будет, Но уже некритично. Вот только текстовые поля будут маловаты
>>70181 >поставить в столбик Это как? Можешь нарисовать примерный вид того, что ты хочешь получить? Просто если поставить поля ввода друг под другом — это сильно растянет меню вертикально. Кстати, может просто сделать ссылку «поиск» в меню, и при ее раскрытии показывать эти поля?
>>48357 Хомура-нян, зову тебя на чай, ты свой тортик ещё хотела принести. Но, если нет, то я не обижусь, купим в кондитерской. Конспирация, хе-хе.
>>70273 Не могу. Заказчик тут я и хочу, чтобы они стояли в столбик и шрифт comic sans И лимонным цветом Если серьезно, то ты угадал и я понял, что затея со столбиком не очень. Про ссылку идея понравилась
Хома-бюрократян, а как насчёт запила Традиции оформлять чатик под Праздники различные же?
Главная: Переместить FAQ в одну строку к доскам и фрейму. FAQ: Блок «Что это за борда?» — убрать нижнюю часть об ивентах; Блок «Что ещё мне нужно знать?» — переместить в конец фака; Блок «Это всё?» — удалить. Оформление: Сделать либо округлыми либо прямоугольными рамки блоков настроек и поиска.
>>69585 Ящитаю, чисто 50 последних постов чтобы оставалось в версии +50 — для тормозных ноутов и прочего хлама очень хорошо. К остальному никаких нареканий, молодца.
Курисач возвращает список постов в виде объекта с объектами-постами. В начальном описании API был заявлен Array of <POST>s An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.
Array of <POST>s
>>70941 Done. >>70971 Ок, тогда сделаем ссылкой. >>70980 В смысле? =) >>71020 Спасибо, записал. >>71025 Ок, ладно. Думаю, решим через галочку в настройках. >>71142 Да, там на самом деле возвращается не обычный массив, а (по терминологии php) ассоциативный (то есть object). В описании, получается, терминологический косяк.
>>71154>ассоциативный массивСтранное решение. Понадобится предварительная сортировка ключей.Еще вопрос: как правильно получить каталог тредов через API и насколько корректен запрос вида /api.php?id=1&method=get_part_of_board&board=sg&start=0&threadnum=9000&previewnum=0Хотя, если обращения к API не кешируются вовсе, то наверное так вполне можно поступать.
/api.php?id=1&method=get_part_of_board&board=sg&start=0&threadnum=9000&previewnum=0
>>71154 >В смысле? =) Вотвить непонятливая няха. Та в прямом же. Хотябы штоб на глагне тематические малюнки или вiзерунки были же:3
>>71172 К н-новому году обязательно сделаем.
>>71182 Только Новый Год нищитово же и фсе так делают же. Няшнее нада делать, ато лентяи сплошные, как Шира бачит — лень паклавишам пастучать, та мышкой подвигать же раз в месяц-джва:3
>>71233 М-можно вот эту кнопочку которую я обвёл подвинуть немного в право?
>>71332 Та сколько угодно же, няшка^^ А для чиво она нужна, кстати? И да, >в право. Никак и ты значение знаешь же?
>>71339 >Та сколько угодно же, няшка^^ А для чиво она нужна, кстати? А т-ты нажми и прокрути вниз страницы. >Никак и ты значение знаешь же? Просто ошибка. Пробел иногда случайно задеваю
>>71169 >Странное решение. Ну они всё равно получаются массивом с ключом, равным id поста, так что оверхеда нет. >как правильно получить каталог тредов через API и насколько корректен запрос вида Собственно говоря, вполне корректен. Главное, чтобы прилетевшие 9к оп-постов (если столько будет на Курисаче) клиент смог прожевать и не сломаться. =) Кстати, может, был бы полезен запрос, который возвращает только номера ОП-постов, или нет? >>71172 >малюнки или вiзерунки Як не розмовляю по-такому. =) Вообще если я хотя бы примерно понял, о чём ты, на 1 апреля и на новый год мы так делали. >>71233 >лень паклавишам пастучать, та мышкой подвигать же раз в месяц-джва Мы с нужными-то реквестами с трудом успеваем справляться, а тут раз в месяц-джва добавлять... Впрочем, если ты возьмёшь на себя работу по сборке паков тематических бэков и персонажей в нужной комплектации — то можно пилить такое, да. >>71332 Это уже в списке, как доберусь до курисабы, сделаю. >>71339 >А для чиво она нужна, кстати? Чтобы форма либо скроллилась вместе со страницей, либо оставалась на месте при скролле. То же самое, кстати, делает с меню ссылка «прикрепить/открепить» в настройках.
>>71359Теперь вопрос про частичную загрузку постов из треда: как отличить по ответу сервера удален ли тред (не существует на доске) или в нем действительно нет новых постов? В обеих ситуациях сервер возвращает 404 и сообщение об отсутствии новых постов.Запрос номеров постов предполагает последующую загрузку этих постов, что порождает множество новых запросов. Возможно кому-нибудь такой метод получения будет полезен.
>>71363 >как отличить по ответу сервера удален ли тред (не существует на доске) или в нем действительно нет новых постов? В обеих ситуациях сервер возвращает 404 и сообщение об отсутствии новых постов. Да, пожалуй, стоит возвращать 410, если тред удалён, и 404 — если новых постов нет. Пойдёт так? >спойлер Ладно, записал, сделаю.
>>71440>Пойдёт так?Да, вполне.Почему сервер отдает отметку времени поста с коррекцией UTC+3, а не в UTC? И в чем причины двойной экранировки кавычек и апострофов? Но это скорее риторические вопросы.
Реквестирую свой собственный лялькоскрипт запилить же:3
>>71154> Да, там на самом деле возвращается не обычный массив, а (по терминологии php) ассоциативный (то есть object). В описании, получается, терминологический косяк.Довольно плохое решение. Если по задумке должен выдываться массив, то это должен быть массив. Ассоциативный массив неупорядочен, итерация как таковая в нём не предусмотрена. Поправь, пока не поздно.Я нашёл эту папку, она оказалась на старом смартфоне!
>>71687 >Почему сервер отдает отметку времени поста с коррекцией UTC+3, а не в UTC? Ну это потому что у нас Курисач на самом первом хостинге «жил» по MSK, так с тех пор и повелось. Могу добавить необязательный параметр timezone, если надо (по умолчанию будет "UTC+3"). >И в чем причины двойной экранировки кавычек и апострофов? У нас в базе почему-то так хранится. =) Не знаю, это тянется ещё со времён нульчан-кусабы. Если надо — могу при отдаче ответа вырезать лишние экранировки. >>71754 В смысле? >>71766 >Если по задумке должен выдываться массив Задумывался-то именно ассоциативный, типа id => {post_data}. >Ассоциативный массив неупорядочен Но упорядочивание без привязки к id поста смысла не имеет же? >итерация как таковая в нём не предусмотрена. Может, я чего-то не понимаю, но вроде как и в javascript работает нечто вида for(var key in obj) {console.log(key + "=" + obj[key]);}, и в php foreach($obj as $key=>$val) {print($key . "=" . $val);}. Впрочем, конечно, если где-то с этим проблемы, могу добавить дополнительный необязательный параметр в запрос, типа reply_format='array' или reply_format='object'.
timezone
"UTC+3"
for(var key in obj) {console.log(key + "=" + obj[key]);}
foreach($obj as $key=>$val) {print($key . "=" . $val);}
reply_format='array'
reply_format='object'
>>71819> Задумывался-то именно ассоциативный, типа id => {post_data}.Если нужна упорядоченность, то ассоциативный массив не подходит.> Но упорядочивание без привязки к id поста смысла не имеет же?Ид поста можно хранить в объекте поста, и извлечь его по необходимости.А в твоём случае упорядочивания просто нет.> Может, я чего-то не понимаю, но вроде как и в javascript работает нечто вида for(var key in obj) {console.log(key + «=» + obj[key]);}, и в php foreach($obj as $key=>$val) {print($key . «=» . $val);}.Итерация возможна, но без привязки к порядку. Всё равно что обходить хэштаблицу или дерево.Стандарта для json-объектов нет, поэтому порядок обхода может вообще различаться как угодно.
>>71823 Ок, ладно, предположим, что для целей итерирования лучше обычный массив (хоть для индексирования лучше ассоциативный), так что будет поле reply_format (ну и поле timezone тогда уж).
>>71819 >В смысле? Чому ты постоянно такие вопросы задаешь же? дура сафсем штоле? Шира поясняет — аналог хохлоскрипта слабо запилити же?
>>71953 Порой мне хочется уебать Шире прикладом в челюсть вогнав весь передний ряд ей в горло, ну чтобы иметь хоть какое-то объяснение такому запредельному количеству шипящих в речи.
>>71956 Ты хоть штота с прикладом держал в руках, няш? И объясни хде моар шипящих в предыдущем посте же^^
>>71959 Держал, не переживай, и как перезаряжать об людей тоже знаю, так же как и знаю, что нам с тобой не добраться друг до друга.
>>71960 Чому же не дабрацца, спицназ-тян же? Мамка нипустит штоле?
Ах да, мелочь: трипкоды хранятся без восклицательных знаков и в таком виде выдаются АПИ?
>>71961 Денег на билеты не хватит, ездить к каждому кто мне не нравится в интернете.
>>71965 Трус и простаговорилка, не более же, но не бойся — Шира тебя любит же^^
>>71966 Воннаби милитарист уже третий раз птыющийся уколоть меня в ответ на весьма безобидное по меркам борд замечание о том, что его стиль речи напоминает шипение бутылки газировки, не более того. А теперь хватит засорять /d.
>>71967 Уколы? Хдеже? И то, шо на безобидный вопрос так и ниатвечено было? Замечательно от тебя попытка пристыдить, када ниту атветов, шо не фтом тренде, ага:3 Ну да ладно, в любом случае Добра тебе и мороженное, а ещё чаю ромашковаво. штоб спалось няшненько же:3
https://youtu.be/vtO9yU5F_aE >>71967 А и от милитаристки (пока у ней энтот фильма перед сном глядеть грузицца) песенка тебе же, няшка^^ Ну и фсем остальным канешно же:3
>>71953 Шира, я не понимаю (да и не обязан понимать, вообще-то) вашего сырнотредовского жаргона на 100%. >аналог хохлоскрипта Ты про куклоскрипт? Зачем? Обычная кукла и так работает без проблем, а самые нужные фишки из неё уже интегрированы в движок. Не понимаю, чего ты хочешь. >>71962 Да.
>>72029 Хомка-няш, ежели мы занимаемся бюрократиями, то шо за обращение к Шире в этом итт не по протоколу, а по панибратски — Шира? Широ же, и никак иначе:р Алсо, тебя Шира ничем не абязывает, а ежели ты фпаследствии смены погоды токой ворчунишкой становишса, то пожалуста канешно, но ниужели это на Ширу выплёскивать свою агрессию нада же, када можно в зеркало заглянуть, например, али зярядку сделать? =сказала с самым ёрничающим видом=
>>72033 >занимаемся бюрократиями >не по протоколу, а по панибратски >ничем не абязывает >ворчунишкой становишса >выплёскивать свою агрессию >в зеркало заглянуть Слово «лялькоскрипт» мне вообще было не понятно, «хохлоскрипт» — возможно, понятно, но я не знаю, правильно ли догадался. А я всего лишь спросил, зачем, и сказал, что я не понимаю двух вещей (источником обеих из которых ты являешься). Так что давай без «ворчунишек» и «выплёскивать агрессию». Но, конечно, если ты не хочешь, чтобы я тебя понял и сделал твой реквест — то тогда можешь продолжать в том же духе. Вообще я считал, что заказчик к исполнителю должен иметь хотя бы минимальное уважение, проявляющееся в том, что он хотя бы чётко обозначит желаемое, но в последнее время я понимаю, что отсутствие этого характерно не только для составления всяческих ТЗ и ПМ, но и даже для здешних реквестов: одни ленятся писать в этот тред вообще, другие, если уж написали, то ленятся объяснить, чего ж они хотели, ну и т.д...
>>72072 И фсётаки ворчунишка ты же, няша^^
СРОЧНО Господа, простите за оффтоп, но я не разбираюсь в амурных делах с компьютерным железом, так что спрашиваю знатоков. Хочу на компе заменить материнскую плату и процессор. На жд много нужной информации и вообще форматировать не хочется. Мать меняю Asus на gigabyte, Intel Pentium G860 на Intel core i5-4460. ОС windows 7. Прошу о помощи.
>>72820 1. hw тред уже есть >>37737 2. Замена цп и мб никак не влияет на твой жёсткий диск. Ну только если ты не настолько отбитый, что держишь всю инфу на одном разделе с ОС, которая вполне можеть упасть в БСОДы после твоих замен. 3. Какой именно помощи ты просишь?
>>72832 1. Извиняюсь. 2. Т.е. винду переустановить придется. 3. Просто пару советов. Например, ответ на 2 вопрос
>>72848 >Т.е. винду переустановить придется. Скорей всего не придётся, не настолько у тебя глобальные замены, просто такая возможность существует. >Например, ответ на 2 вопрос Прости, я вообще не могу углядеть в твоём тексте ни одного вопроса. Что касается советов, то могу только предостеречь от платиновых ошибок: 1. Никаких манипуляций с необесточенным железом. Тебя то не убьёт, а вот словить коротыша неудачно тыкнув отвёрткой это как два пальца. 2. Сначала ты вставляешь в новую материнскую плату процессор и устанавливаешь на него куллер, а только потом устанавливаешь её в корпус, не наоборот. 3. Все операции по подключению кабелей питания — только на обесточенном пк. Опять же плохо будет не тебе а железу. 4. Не лишним будет протереть контакты ОЗУ и видеокарты перед тем как пихать их в новую плату, алсо обязательно убедись, что они вставились до конца и защёлка сработала, казалось бы элементарная вещь, а висящая на половину в воздухе планка озу обычное дело мамкиных сборщиков. Ну в общем то это самая самая классика. если точней сформулируешь вопросы, то получишь точные ответы.
>>72852 >Скорей всего не придётся, не настолько у тебя глобальные замены, просто такая возможность существует. Это и спрашивал. >Прости, я вообще не могу углядеть в твоём тексте ни одного вопроса. Что касается советов, то могу только предостеречь от платиновых ошибок Большое спасибо. Последний вопрос: видеокарта radeon без доппитания, проц знаешь, мать gigabyte b85-m — потянет ли все это блок питания 350 ватт?
>>72870 350вт бывают разные. Это долго объяснять, но после великого взрыва в процессе эволюции десктопные ПК пришли к тому, что практически вся потребляемая ими мощность берётся с ветки +12V, в то время как на недорогих китайских блоках до сих пор добрая половина мощности выделена на ветки +3.3 и +5V, т.е. из 350 написанных на наклейке ватт, хорошо если твой пк получит хотя бы 200, поэтому точно могу сказать только то, что он у тебя запустится, а будет ли его тебе хватать под нагрузкой это без хрустального шара и жертвоприношений не разобрать, будущее слишком туманно.
>>72877Забыл самое главное. Проверь чтобы у тебя на процессор от блока питания 8pin разъём был, на некоторых слабых блоках их только 4.
>>72877 Уджваиваю кстати. Ато много зойчемта экономят на БПшках, а потом страдают. Нет, штоб каконить корсар, али чифтек, на худой конец взять же, но нет — лишнюю тыщщу в видеву вложу, ага. Потом ессно разрыв седалища от того шо камлюктер под нагрузкой совсем плохой становицца, а блок вылетает напиську забирая с собой туже видяху, ато и ещё друзяшек каких:3:3
>>72877 LogicPower, 400w, 4пина на ATX12V, но на старой матери было только вход на 4-пин. Все плохо? Сгорит?
>>72905 >>72920 Тут ведь не только в блоке дело а ещё и в том что надо материнку брать с 8-ми пиновым разьёмом ATX12, 4-х пиновый для мощных видеокарт и игор не пойдёт. Проверено на себе.
>>72921 Мать с 8 пинами, БП с 4-мя. Проц core i5 4460, Видеокарта старая, radeon 7750, на калькуляторе мощности около 200 ватт, 400w БП Max мощность не на 12V — 120w. Хз даже.
>>72922 Бери нормальный БП с запасом на 650 — 750 вт с раздельными разьёмами и кабелями и будет счастье. Они не должны дорого стоить, в районе 3-к рушелей. Потом можно и карту свободно с доп-питанием брать.
>>72920 >Все плохо? Сгорит? Всё плохо, но не сгорит, просто не включится. Увы без нового БП тебе не обойтись. >>72924 >Они не должны дорого стоить, в районе 3-к рушелей. За окно давно выглядывал? Если тыкнешь мне ссылкой на 650-750вт с цельной 12V веткой, APFC, 80+ и кабель менеджментом за 3к рублей я прямо сейчас пойду и куплю его и перепродам за 5.
>>72927 А, ну да. Я-то свой CTG 650 C брал ещё до того когда Меркух на майдане стал прыгать. Сейчас-то они конечно от 4600 до 5700 дерева стоят а в долларах всё так же 80-90$. Жаль только корпус нормальный тогда не купил. Сейчас цены на корпуса больно конские, нормальный тауэр от 6к до 12.
Акеми Хомура-нян! Именем своей новой Богини Анны Нишикиномии я вызываю Вас на чаепитие! Нашим секундантом станет наш общий знакомый. Жду Вас там же, где всегда. Всегда Ваша, Ю-тян.
>>72946 Оке, щас нанесу туда визит. =) Капча ДОБОТА, и вот и думай, то ли это добрая капча, то ли психоделическая.
>>73025 Выбивают из тебя доступ к борде, чтобы сломать её?
>>73096 Я бы сказал, как раз наоборот. =)
Хомура-нян, у вас тут вместо index.php — front.php? Так?
>>73423 >Хомура-нян, у вас тут вместо index.php — front.php? Так? На главной — да. Хотя и говорить так не совсем точно. Это было одно исключение, прописанное вручную в .htaccess Там много разных полезных правил. На одном из них (переопределение 404-обработчика) весь вывод тредов работает.
>>48357 Хомура-нян, послала тебе письмо на почту!
>>73423 Да, Рейму правильно сказал. >>73470 То чувство, когда до Ёму тебе не хватает лишь бантика на ленточке. =) Сейчас посмотрю. Капча ЯНАЕРЕ, угадайте, как я прочитал букву «А».
>>73480Мне больше «яранае» напомнило, етпочя…
>>73493 Кому что, лол... =)
Трип-код работает не правильно. Вводишь 1 раз — нормально, но потом вроде и сохраняется, но уже галиматью выдаёт. Если нужен оригинал кода для трип-кода для теста — то найти меня — я скину в личку.
>>48357 Хомура-нян, письмо тебе шлю.
>>74455 Ты можешь не писать сюда каждый раз об этом? Раздражает.
>>74498 Этот прав. Заебало уже гнилое показушничество.
>>74498 Ты можешь не указывать людям, что делать? Раздражает.
>>74552 Этот прав. Заебали уже мамкины тредовладельцы.
>>74498 Не знаю, как ты, а вот нормальные люди в ящик не каждый день заглядывают. Поэтому, няша, их принято уведомлять заранее, особенно когда дело хоть и не слишком серьёзное, но слегка срочное. Только Хомура-нян имеет моральное право указывать мне в данном направлении.
>>74557 Нахуй иди, неадекват.
>>74557 Пошёл нахуй.
>>75147 Не нравится — заблочь. Или свали с треда.
>>75162 Воображаемый единомышленник подтверждает
>>75238 Сам свали. >>75239 >МААМ У МЕНЯ СЕМЕН ПОД КРАВАТЬЮ
>>75311 >сам свали Большего и не ожидал
>>75323 Ты слился.
Хомура-нян, времени суток тебе! Мы испытываем технические проблемы! Нашему общему собрату нужно связаться с тобой по скайпу! Его логин — orab_orab .
Хома, избавь нас, пожалуйста, от этого недоразумения.
>>75421 Того же мнения.
>>75421 >>75451 Это тип когда ты был без аватарок, тебя не слушали, а теперь послушают. Справа от никнейма есть значок с лупой. Тыкаешь на нее — Ю-тян исчезает. Как тебе еще объяснить, чтобы ты перестал засерать тред своим недовольством?
>>75465 > Как тебе еще объяснить, чтобы ты перестал засерать тред своим недовольством? Ты вначале себе рот заткни, даун. Как тебе объяснить, что всем этим «Хома, тебе письмецо» не место в dev?
>>75471 Ты не админ и даже не ОП, алло. Тебя ебать это не должно. К тому же, чему в d место, а чему нет — решать совсем не тебе. Обожаю таких ребят. Решать проблемы они не хотят, они хотят выкатиться своим суперважным мнением и людей поопускать. Советую пойти обратно на свой рак, если это все, что ты хочешь здесь делать. Там для этого подходящая атмосфера.
>>75501 Серый кардинал, это вы?
>>75471 Курисачую. Такие сообщения в личку кидать надо, а не на публичную доску и тем более не в технический тред. Или тогда меняйте /d/ на /homu/.
>>74146 Записал, потестирую на досуге. Однако раньше такого, как ни странно, не было. Какой браузер, стоит ли кукла? >>74557 Указываю =) Лучше меня-таки пинать через скайпчик или контактик, да (это-таки тред больше про курисабу, а не «связь с админом», лол, хотя, конечно, если что-то прямо экстренное, а все полимеры и связи канули в лету, то можно понять такой метод). >>75378 Ок, сегодня напишу.
>>75674 Отключение/включение куклы ничего не меняло.
Эй, Шататели чатика! Ну разве же так можно поступать? Включает засыпающая Шира глагне, а там как стена бетонная с рисунками в расцветке «безысходность» же. Што с вами?
>>76026 С-скоро зиму поставим не беспокойся.
Просто хочу сообщить, что зимняя тема очень красивая и классная, но почему бы вам не добавить побольше новогодних няшек? Можно, думаю, и не калиточных.
>>75677 Хм, ладно, будем разбираться. Как я понял, он слетает именно при переотправке постов, так? Или при обычной отправке тоже? >>76256 Мы адово реквестуем от тебя нужных няшек (png, не менее 1000px в высоту, прозрачные, нормально обрезанные) а «не калиточные» у нас только те, кто обитает на Курисаче, кухихи.
>>48357 Хому, какой у тебя скайп? Связаться нужно. твоя сопроектница
>>77309 muzzdiez Я же написал этому orab orab-у, что он мне не ответил?
Хомура-нян, загляни в скайп, по которому можно быстро с тобой связаться, да, конечно.
ЧТО ВЫ СДЕЛАЛИ С КУРИСОЙ???????
>>77875 А что с-случилось?
>>77892 Привет, Ханако. Да что-то с тредами не так.
>>77824 Вчера вроде заглядывал, не заметил ничего. Сегодня, как приду с работы, попробую ещё раз. >>77894 >Да что-то с тредами не так. — У меня не работает! — Что именно не работает? — Не знаю! Тыжпрограммист, приди разберись! Намёк понят?
Маленькие клиентские улучшения на подходе! В результате недавних работ над kusaba.new.js, добавлены такие возможности в браузерной версии: 1. «История записей». Это такая «маленькая кнопочка», которая сохранит ваш длиннопост в случае, если во время написания случайно нажали на кнопку закрытия вкладки, или перехода по истории браузера, или случайному нажатию на кнопку «редактировать», а иногда и даже при случайном закрытии браузера. («маленькая кнопочка» потому, что там, на самом деле, ведётся история последних «потерянных» длиннопостов. Просто не вижу я её столь масштабного использования. В крайнем случае, можно вписать на исполнение (в консоль отладки, например) эту комманду: insert( emgr_storage_load().values.join("\n\n-----\n\n") ); для вывода всей истории, что только сохранена) 2. «Быстрый ответ» и цитирование выделенного. Теперь эта кнопка не просто добавляет ожидаемый номер поста, но ещё и добавляет в цитирование выделенный текст. И даже старается следить за тем, чтобы не было много ссылок на один и тот же пост подряд.>>77969 >— Не знаю! Тыжпрограммист, приди разберись! > >>77894 >>Привет, Ханако. Да что-то с тредами не так. Слушай, Хомура, я, кажется, понял, к чему это. В темах «Cdark» и «Cchaos» номера постов плохо видно.
insert( emgr_storage_load().values.join("\n\n-----\n\n") );
>>77969 >Сегодня, как приду с работы, попробую ещё раз. Я тебе на почту выслала.
>>78007 И в буричане фиолетовая капча на фиолетовом фоне.
>>78007 Ого! Годзаимасное аригато, Рейму! =) Последнее особенно годное. >>78055 Ок, гляну вечером. >>78007 >В темах «Cdark» и «Cchaos» номера постов плохо видно. >>78147 >И в буричане фиолетовая капча на фиолетовом фоне. Записал.
>>71020 Я напоминаю тебе Хому. >>77969 >— Что именно не работает? >— Не знаю! Вдвойне забавно, что это не простой пользователь. >>78007 >1. «История записей». О, действительно отличная вещь, теперь мои простыни под защитой.
>>77969 Курисаба неправильно определяет разрешение экрана. >>78187 Нормально все видно, не меняйте. >>71020 > Сделать либо округлыми либо прямоугольными рамки блоков настроек и поиска. Они вроде и так округлые.
>>78260 >Они вроде и так округлые.
Замечен вот такой баг.
Дубль два.
>>78255 >Я напоминаю тебе Хому. Я помню. Надеюсь засесть за курисабу на новогодних праздниках. >>78261 Хм, у меня всё круглое. Какой это стиль? >>78339 >>78572 Я правильно понимаю, что это из-за длинных слов в овер 9000 символов, ломающих вёрстку? Странно, мы же это чинили...
>>78993 Да, т-ты прав.
А можно сделать, чтоб кнопочкой подгружать можно было новые посты? Мышкой целиться надо, а так раз и всё.
>>78993 >Какой это стиль? Стиль богомола.
>>79167 Блядь, проиграл в полный рост. Modern.
Good night sweet princess...
>>79136 Кнопочкой в смысле на клавиатуре? >>79168 >спойлер Ок, записал.
Фичереквест: превращение дефисоминуса + пробела в полноценное тире. Или двух дефисов подряд в тире. Лентяй во мне конфликтует с маленьким Артемием Лебедевым. Бонусные и более спорные идеи: (c), (тм) и -> превратить в → © и ™
>>79335 >Фичереквест: превращение дефисоминуса + пробела в полноценное тире. Но ведь есть и давно — причём именно так (пробел+дефис+пробел) — работает. К примеру — это сообщение я набираю с использованием исключительно знака на клавиатуре — то есть дефиса. — Более того, это работает и в начале строки. — Да-да, когда пишешь какой-нибудь диалог, — могу сказать я. — Правильно, потому что на тире заменяется ещё начало строки+дефис+пробел. >Бонусные и более спорные идеи: (c), (тм) и -> превратить в → © и ™ Записал.
>>79446Пфпф, в факе не документировано!Тестируем-с — работает
Надоело фсё же... Давай Шире молоток:3 https://haruhichan.ovh/b/res/3738.html
Хомура-нян, с Новым годом и пошли пить чай. Дело важное и в некоторой мере срочное. коллега
На телефоне при отправке поста перекидывает в список тредов.
>>79480 Ок, документируем. =) >>79529 шат? >>79578 Ок, сейчас. >>80293 И при этом галочка noko стоит? Если да — какой браузер, работает ли javascript, какие галочки включены в настройках?
>>81392 Вопрос отпал, noko не отмечено
Отлично пошатали.
Почему умирали сегодня?
>>81591 С-смайлофаг Шатал Курисабу. И вот так случайно п-получилось.
Хомура-нян, пошли пить чай, у меня для тебя оч-чень интересное предложение, хе-хе. лабмем
>>81572 Упс. Поправлю. >>81591 Ага, я, наконец-то, вернулся к своему занятию. =) Новогоднее курисабошатательство, так сказать. >>81659 Ок. Юно, заведи плз уже фейк в контактике, а то и правда, как-то не в тему получается тут писать. Не то, чтобы прям бомбит с этого, просто странновато выглядит немножко. btw, традиционный список поправленных и оставшихся багов: — (NEW) (You) появляется при отправке постов (minor) (easy) — DONE — (NEW) (You) добавить к рефлинкам (minor) (medium) — DONE — (NEW) внезапно обнаруженные пруфметки типа ##op##, ##12345##, ##/sg/12345## допилить (minor) (easy) — DONE — (REOPENED) обнаружение куклоскрипта в хроме не работает (normal) (hard) — DONE (ДА!!! Стараниями Рейму мы это сделали! Ура нам! =) — перейти к одному постбоксу вместо двух (minor) (hard) — DONE — (NEW) insert_local(x,y) в board-poast.class.php заменить на insert(y) (normal) (easy) — DONE (спасибо Рейму!) — (NEW) повышение секурности IP (major) (medium) — DONE (спасибо Рейму!) — (NEW) выпилить хардкодинг хоста из исходников (minor) (easy) — DONE (спасибо Рейму!) — (NEW) FAQ: блок «Это всё?» — удалить (minor) (easy) — DONE — (NEW) добавить фонов (minor) (easy) — DONE — (NEW) «Быстрый ответ» и цитирование выделенного (minor) (medium) — DONE (спасибо Рейму!) — (NEW) «История записей» (minor) (hard) — DONE (спасибо Рейму!) — удалить логирование капчи (minor) (easy) — DONE (жалоб больше не поступало) — (NEW) Символы ©, ™ и → превратить в → © и ™ (minor) (easy) — DONE — (NEW) В стиле Modern сделать округлыми рамки блоков настроек и поиска (minor) (easy) — DONE — (NEW) В стилях cchaos, cdark поиск улетает влево (minor) (easy) — DONE — (NEW) В темах «Cdark» и «Cchaos» номера постов плохо видно (normal) (easy) — DONE — (NEW) В буричане фиолетовая капча на фиолетовом фоне (normal) (easy) — DONE — (NEW) убрать у тредов пометки про удаление (minor) (easy) — DONE — (NEW) оформление: сделать либо округлыми либо прямоугольными рамки блоков настроек и поиска (minor) (easy) — DONE — перейти к одному шаблону поста вместо четырёх (normal) (hard) — DONE — (REOPENED) Длинные слова ломают вёрстку (што, опять?!) (normal) (medium) — DONE — (NEW) FAQ: блок «Что это за борда?» — убрать нижнюю часть об ивентах (minor) (easy) — DONE — (NEW) FAQ: блок «Что ещё мне нужно знать?» — переместить в конец фака (minor) (easy) — DONE — (NEW) Тире в FAQ не документировано (minor) (easy) — DONE — (NEW) в FAQ про кулдаун пикч написать (minor) (easy) — DONE — (NEW) Хотлинки на корневые треды (/sgsg/, /faq/ и /vg/vg/) (minor) (easy) — DONE — (NEW) Хотлинки на треды вместо php-автозамены (minor) (easy) — DONE — (NEW) для «корневых» тредов борды сделать ссылку как имя борды, типа https://kurisa.ch/sg/sg и https://kurisa.ch/vg/vg (minor) (medium) — DONE — В FAQ запилить техдоку по борде (normal) (hard) — (NEW) после некоторого времени вкладки в простое автообновление перестаёт работать (normal) (hard) — (NEW) все вхождения ...clone проанализировать (normal) (medium) — (NEW) Запретить русские названия вебм и мп3 и переименовать те, которые есть (normal) (medium) — (NEW) Трипкоды отваливаются (normal) (medium) — сделать переключение английского и русского интерфейса (minor) (hard) — упорядочить постбокс (minor) (hard) — превьюшки вембок генерить (minor) (hard) — сделать шапку для скрытых постов (minor) (hard) — приделать автообновление к однопотоку (minor) (hard) — пикчи, webm и видео открывать по центру страницы по галочке в настройках (minor) (hard) — (NEW) сделать возможность оставлять не более 50 постов в «последних 50» (minor) (hard) — (NEW) Поиск картинок на курисаче (minor) (hard) — (NEW) Прицеплять две картинки к одному посту или музыку + картинку (minor) (hard) — (NEW) сделать длины полей в постбоксе через css, а не width (minor) (medium) — (NEW) поиск спрятать в ссылку в меню (minor) (medium) — (NEW) встройку простоплеера сделать (minor) (medium) — (NEW) предпросмотр поста возникает позади формы быстрого ответа (minor) (medium) — (NEW) В поиск поле «ответы на посты %юзернейма%» (minor) (medium) — (NEW) автообновление не грузит анимированные картинки (minor) (easy) — (NEW) you в рефлинках и карте ответов при автообновлении не появляется (minor) (easy) — (NEW) восстановить пикчи с нулевым размером (minor) (easy) — (NEW) модлог не тримить, а то толку от него нет (minor) (easy) — (NEW) восстановление треда в модлог запилить (minor) (easy) — (NEW) кнопочка пиннинга в форме ответа перекрывает поле (minor) (easy) — (NEW) главная: переместить FAQ в одну строку к доскам и фрейму (minor) (easy) — (NEW) был бы полезен запрос API, который возвращает только номера ОП-постов (minor) (easy) — (NEW) API про частичную загрузку постов из треда: возвращать 410, если тред удалён, и 404 — если новых постов нет (minor) (easy) — (NEW) API: добавить поле «timezone» (minor) (easy) — (NEW) API: добавить поле «reply_format» (minor) (easy) — (NEW) В поиске, если результатов много, выводить первые N, а не писать ошибку (minor) (easy) — (NEW) Подчёркивание после кнопки «скрыть пост» (minor) (easy) — (NEW) X постов пропущено — повторяется (minor) (easy)
Кокая фичастая борда, вах! Так можно и ololord allchan.su перегнать.
После недавних шатаний Курисач в дэшчане больше не работает :с
>>81759 >Кокая фичастая борда Отож! >>81800 Эмм, что я могу сказать... Разве что: сорянчик(( Вот если б можно было бы посмотреть, где это у него некорректный ответ, то было бы лучше. Алсо, микуоверчан, вроде бы, работает, насколько я знаю. P.S. Если кто умеет собирать софт под андроид (Гин, Тосака, Рейму, м?), то он бы мне здорово помог, например, взяв сорцы из репозитория (https://github.com/Mishiranu/Dashchan, верно же?), собрав, запилив туда дебаг и посмотрев, где ломается. Алсо, к тем, кто юзает микуоверчан: у вас всё ещё есть проблемы с шапкой поста (ну там не отображаются некоторые поля, кроме как в оп-посте)?
В-вот такое случилось, когда запостил первый пост в треде. Перезагрузка страницы помогла.
>>82195 В-вроде ничего такого в мику-оверчана нет. Хотя иногда посты не отправляются, но это кажется проблему у меня.
У меня тут небольшая проблемка. Сижу сейчас с ведра, и из-за этого промахиваюсь пальцами, и вместо того, чтоб ответить на пост, скрываю его. Эне подсказала мне, что в настройках можно снова открыть посты, но тут возникла новая проблема. С ведра нельзя открыть настройки, потому что их кнопку перекрывает панель поиска. Может или кнопочку скрытия сделать чуть побольше и передвинуть в сторону, или как-то интерфейс поменять, чтобы настройки открывались. Просто третий раз за сутки уже такое. А еще у меня время от времени почему-то отваливается noko. Спецально слежу за ним. Отправил пост, выкинуло в /sg/, в поле ответа на noko есть галочка, а пором пропадает. Что мне делать со всем этим?
А, нет, я бака. Настройки открываются, если вниз промотать. Но все еще бывает проблема с ноко
>>82943 >>82945 П-почему бы тебе мику-оверчан не попробовать? https://play.google.com/store/apps/details?id=nya.miku.overchan&hl=ru
Расскажите про FAQ-тред (https://kurisa.ch/sg/res/63813.html), он магический? На сайте в списке тредов и в каталоге его нет, а в апи вдруг появляется.
>>83176 П-просто тред скрытый. машинным духом.
Скрытие тредов что-то у меня сломалось.А точнее он работает, но очень интересным способом.При нажатии скрыть тред ничего не происходит. Но если зайти в этот тред а потом сразу выйти, то тред будет скрыт.Консоль ничего не выдаёт.
>>82573 О, кажется, я даже знаю, почему это. Записал, поправлю. >>82584 >В-вроде ничего такого в мику-оверчана нет. О, это хорошо. =) >>82945 Да, пока так, а вскоре я поиск волью в левую менюшку, и она останется одна и ничто ничего не будет перекрывать. >>82943 >Отправил пост, выкинуло в /sg/, в поле ответа на noko есть галочка, а пором пропадает. Странно. Насколько часто это воспроизводится? Не любит ли браузер чистить себе куки, когда его не просят, например? >>83176 Хе-хе, это особая магия Хомуры. =) Да, в курисабе теперь есть возможность делать скрытые треды, и FAQ как раз таким сделан. Впрочем, не знаю, имеет ли смысл его отдавать в API? Могу убрать оттуда, если мешается. >>83261 Спасибо, что написал, я записал себе в списочек.
>>83354 Чначколько часто? Раз в несколько недель бывает где-то. А насчет браузера не знаю, но сомневаюсь в том, что это причина, если в течении получаса галочка может просто не желать держаться на окне ответа, выкидывая меня в /sg/ независимо от того, ставил я ее или нет. А еще такое было как на ноуте, так и на андроиде. И там, и там у меня хром стоит, если что.
Если использовать показ последних 50 постов, то получается пикрелейтед, что не очень красиво выглядит. А еще промотка стрелочками не очень удобная, если сидеть с мобильных устройств. Может сделать какие-нибудь кнопки вроде стандартных «вверх/вниз страницы»?
Хм, а есть ли на курисаче цифровое тире. 4-2 4–2
>>83360 >если в течении получаса галочка может просто не желать держаться на окне ответа, выкидывая меня в /sg/ независимо от того, ставил я ее или нет Очень странное поведение. А перед этим галочку не снимал, конечно же? Если вдруг такое будет получаться, то зайди в консоль браузера, набери там document.cookie; и посмотри, что выдаст. Должно быть нечто вроде: "tothread=on; ku_showblotter=...; postpassword=...; ku_menutype=...; kustyle_site=...; kustyle=...; PHPSESSID=..." Обрати внимание на то, что у тебя будет после «tothread» (и будет ли он вообще). Если сумеешь поймать этот момент, попробуем разобраться. >>83748 >Если использовать показ последних 50 постов, то получается пикрелейтед, что не очень красиво выглядит. О, да, это записано, я вскоре поправлю. Надеюсь, что где-то на этой или следующей неделе. >А еще промотка стрелочками не очень удобная, если сидеть с мобильных устройств. Может сделать какие-нибудь кнопки вроде стандартных «вверх/вниз страницы»? Можешь описать поподробнее, как это должно выглядеть? Если что, около формы ответа сверху есть кнопка «вниз». >>83799 Сейчас приду. UPD: Пришёл, то там Рейму уже на всё ответил. >>83918 Ну, автозамены на него нет, а вкопипастивать его, конечно, можно.
document.cookie;
"tothread=on; ku_showblotter=...; postpassword=...; ku_menutype=...; kustyle_site=...; kustyle=...; PHPSESSID=..."
>>84163 Вроде не снимал, разве что случайно. Однако не вижу причин ей из-за этого не прикрепляться потом. Насчет консоли не обещаю, я все-таки с андроида все время сижу. Но можно будет попытаться. О, кстати, вот эта кнопочка, про которую ты сказал, как раз и делает то, что мне нужно! Еще б внизу такая же была, для полного комплекта. Спасибо, что рассказал про нее. Блин, я тут подумал, столько всяких фич, а я и про половину, наверняка не услышал бы, если б мне их не подсказали. Хотя, пожалуй, я и половины-то их как раз не знаю. Может это в FAQ надо писать?
>>84175 >Однако не вижу причин ей из-за этого не прикрепляться потом. Да, причин-то нет, может, просто браузер что-то с куками тупит... >Еще б внизу такая же была, для полного комплекта. Хорошо, записал. =) >Может это в FAQ надо писать? Мы работаем над этим. =) На самом деле нет, но это есть в планах, просто я никак время не найду серьёзно засесть за курисабу. Это пункт «в FAQ запилить техдоку по борде».
Заметил забавную вещь. Если ввести неверную капчу, пост отправится, даже несмотря на недельный кулдаун картинок.
>>86510 Странно, но у меня вторая пикча не отправляется, будь капча верной или неверной. А насчёт отправки поста при неверной капче — это just as planned, защита против залётных вайперов.
>>86510 Всё контору спалил. Теперь придётся заново включать.
>>86606 Забавно, раньше посты с неверной капчей только через куклу отправлялись и дублировались при этом. >>86607 Но зачем?
>>86659 З-зачем включать или зачем выключил?
>>86664 Зачем включать.
>>86699 Н-налететь могу с своими вайпами.
>>86659 >Забавно, раньше посты с неверной капчей только через куклу отправлялись и дублировались при этом. Они не дублировались, просто один и тот же пост показывало и автообновление курисабы, и автообновление куклы. У них даже номера совпадали. Вроде, это решилось автоматическим отключением автообновления курисабы при детекте включённой куклы. >>86699 У нас просто вайперы иногда мониторят отключение капчи и устраивают тут треш, угар и содомию. >>86700 >Н-налететь могу с своими вайпами. Вот так забытая «т» в конце слова в корне меняет смысл предложения. =)
Если You отображается по IP, значит ли это, что если два курисачера живут в одном районе или поселке, то You будет их путать?
>>86896 Зависит от того, один ли у них внешний IP, или нет. Точно так же, например, за действия одного из них в бан полетит и другой, или один не сможет в течение секунды отправить пост после того, как второй это сделал, ну и т.п.
>>86792 Вот т-так и раскрыли меня.
>>86900Ну, у большинства его нет. Ммм, надеюсь борда маленькая и таких коллизий не будет.
Дасшчан заработал. Установите обновление.
Есть мнение и нетолько Канино, ага, что к борде надо плеер прикрутить, ну, штобы к посту можно былобы прикручивать песенки, ато эти файлообменники — довольно-таки ненадёжные, да и удобнее так будет, вобщемта.
>>87453 Это уже можно, н-но пока без картинки. Скоро сделаем так, что можно будет добавлять два файла.
>>87533 >Это уже можно, н-но пока без картинки Это Кана уже и так знает, междупрочим-то. >Скоро сделаем так, что можно будет добавлять два файла. Это хорошобы, ага.
Кстати о прикреплении звуковых файлов. Частенько бывает так, что при отправке сообщения со звуком выдает ошибку о невозможности загрузить файл этого типа, хотя это и обычные мп3. С чем это может быть связано, и есть ли решение кроме ссылок на вокару?
>>87844 Хм, это повторяется с одним и тем же файлом? Если да, можешь кинуть мне подобный файл через какой-нибудь файлообменник? Я посмотрю, в чём дело.
Итак, ваша Хомура-нян, наконец-то, добралась до курисабы и поправила большую часть ошибок важности «normal». Осталась такой важности одна, но она больше не программерская, а описательная. Ну и мелкие (и крупные) minor-ы. Отчётец follows: — (NEW) ссылка на faq не работает (normal) (easy) — DONE — X постов пропущено — повторяется (normal) (easy) — DONE — после некоторого времени вкладки в простое автообновление перестаёт работать (normal) (hard) — CANCELLED (больше не воспроизводится). — Поиск картинок на курисаче а-ля поиск по картинкам гугла (minor) (hard) — CANCELLED (я не знаю метода, которым это сделать; если кто-то подскажет, как — то запилю). — поиск спрятать в ссылку в меню (normal) (medium) — DONE — сделать шапку для скрытых постов (minor) (hard) — DONE — В поиске, если результатов много, выводить первые N, а не писать ошибку (minor) (easy) — DONE — Подчёркивание после кнопки «скрыть пост» (minor) (easy) — DONE — (NEW) промотку стрелочками отключаемой сделать (minor) (easy) — DONE (в опциях параметр «показывать кнопки прокрутки»). — модлог не тримить, а то толку от него нет (minor) (easy) — CANCELLED (просто увеличил количество дней до трима). — (NEW) в админке при удалении треда редиректить на борду, а не в тред (minor) (easy) — DONE — восстановление треда в модлог запилить (minor) (easy) — DONE — все вхождения ...clone проанализировать (normal) (medium) — DONE — главная: переместить FAQ в одну строку к доскам и фрейму (minor) (easy) — DONE — (NEW) FAQ в меню (minor) (easy) — DONE — восстановить пикчи с нулевым размером (minor) (easy) — DONE — (NEW) автообновление криво подгружает первый пост в треде (normal) (easy) — DONE — Запретить русские названия вебм и мп3 и переименовать те, которые есть (normal) (medium) — DONE — (NEW) При скрытии треда иногда остается виден ОП-пост (normal) (medium) — DONE — (NEW) При нажатии скрыть тред ничего не происходит. Но если зайти в этот тред а потом сразу выйти, то тред будет скрыт. (normal) (medium) — DONE — Трипкоды отваливаются при переотправке постов (normal) (medium) — DONE (поскольку доставать пароль трипкода из поста несекурно, теперь делается так: если есть сохранённое имя — используется оно; если его нет — то используется то, которое было в посте. Поскольку редактируются обычно свои посты, то это вполне логично). — В FAQ запилить техдоку по борде (интерфейс постбокса, интерфейс поста, API) (normal) (hard) — сделать переключение английского и русского интерфейса (minor) (hard) — упорядочить постбокс (minor) (hard) — превьюшки вембок генерить (minor) (hard) — приделать автообновление к однопотоку (minor) (hard) — пикчи, webm и видео открывать по центру страницы по галочке в настройках (minor) (hard) — сделать возможность оставлять не более 50 постов в «последних 50» (minor) (hard) — (You) в рефлинках и карте ответов при автообновлении не появляется (minor) (hard) — Прицеплять две картинки к одному посту или музыку + картинку (minor) (hard) — (NEW) Бан по юзерагенту (minor) (hard) — В поиск поле «ответы на посты %юзернейма%» (minor) (medium) — сделать длины полей в постбоксе через css, а не width (minor) (medium) — встройку простоплеера сделать (minor) (medium) — предпросмотр поста возникает позади формы быстрого ответа (minor) (medium) — (NEW) скрывать по трипкоду (minor) (medium) — (NEW) кнопка рекомендованные посты (minor) (medium) — автообновление не грузит анимированные картинки (minor) (easy) — кнопочка пиннинга в форме ответа перекрывает поле (minor) (easy) — был бы полезен запрос API, который возвращает только номера ОП-постов (minor) (easy) — API про частичную загрузку постов из треда: возвращать 410, если тред удалён, и 404 — если новых постов нет (minor) (easy) — API: добавить поле «timezone» (minor) (easy) — API: добавить поле «reply_format» (minor) (easy) — (NEW) кнопку вверх страницы сделать в нижнем постбоксе (minor) (easy) Что ж, другими правками займусь в другие дни надеюсь, не сильно далёкие после сегодняшнего =), самое важное, вроде, сделано. А сейчас пойду спать, что ли. =)
>>88247 >скрывать по трипкоду Wahahahahah Объединенная панель настроек неплохо получилась, Хомур, почти как и задумывали. Не мешало бы ещё убраться во фрейме, там до сих пор совиные подкасты рекламируют, зато до поиска приходится скролить и полоса скролла убивает место по ширине. РазвернутьИмя блока «Типа СМИ» меня уже давно раздражает, ни радивач ни трансляции к СМИ никакого отношения не имеют, даже внутрибордовые новости на них никогда особо не обсуждались, а уж если убрать от туда мёртвые подкасты и радивач, то там и вовсе один кинотеатр останется. Может его и оставить в названии? Алсо, скрытие блоков фрейма работает по какому-то непостижимому методу, видеорилейтед: https://youtu.be/dvESyChU11A Алсо 2, ссылки на друзей тоже устарели. Тувач выродился в Анонум, наших ссылок там нет, Хайбань тоже директит куда угодно, даже на мёртвый Озучан, но не сюда. В итоге наши братушки — одноглазая борда для 3.5 поехавших ю-семенов корчащих из себя легион, охуенно, кажется я слышу голос Силуанова из соседней камеры. Алсо 3, в факе что-то пошло не так, каунтер сломался, пикрилейтед.
>>88212 Вообще, я заметил, что диктофонные записи, с помощью какой программы они бы ни делались, не хотят у меня грузиться на борды ни под каким предлогом. Сколько ни конвертируй, будет «неизвестное расширение файла». А сама запись вот тут должна быть. Еще стрелочка, которую ты советовал использовать для промотки вниз время от времени скрывает поле ответов вместо этого. Не знаю, почему. И зачем надо было запрещать кириллические имена файлов?
>>88487 Заливай на вокару, делов-то
Мне кстати вчера в предварительный просмотр ответ Ханакена подгрузился.
>>88508 Это как-то костыльно и бездушно. К тому же, вокару это не всегда удобно. Да и просто разобраться хочется
А будут введены пуш-уведомления о новых постах в треде?
>>88912 Кстати, мне вот как раз нравится, что их нет. Появляется повод почаще открывать вкладку и смотреть, кто что понаписал. Но золотая середина это, конечно, галочка в менюшечке.
>>88378 >Не мешало бы ещё убраться во фрейме Верно, записал. >скрытие блоков фрейма работает по какому-то непостижимому методу, видеорилейтед Кажется, я там рефы попутал. Тоже пофиксю. >ссылки на друзей тоже устарели Мда, пожалуй, и правда, стоит там повыпилить сей блок. >каунтер сломался, пикрилейтед Упс. Поломалось, записал, починю. >>88487 >А сама запись вот тут должна быть. Не, ты кинь именно через файлообменник, потому что на вокару файл конвертируется, меня интересует именно оригинал, который ты хочешь загрузить. >Еще стрелочка, которую ты советовал использовать для промотки вниз время от времени скрывает поле ответов вместо этого. Она его должна не скрывать, а отправлять вниз страницы и скроллить её туда же. Как я понимаю, отправлять она отправляет, а вот скролл не происходит, так? >И зачем надо было запрещать кириллические имена файлов? Потому что они косячно интерпретировались файловой системой. Но это для посетителя борды не должно быть заметно, потому что в интерфейсе всё равно выводится исходное имя файла для webm и mp3 (а если в mp3 есть теги, то вообще они). >>88549 O.o первый раз такое вижу. Если найдёшь способ повторить — то буду премного благодарен. >>88912 Хм... Никогда не пробовал пилить такой функционал. Но я подумаю над этим. И да, конечно, с галочкой, как >>89091 предлагает.
По поводу будущей кнопочки. Вот что думаю. Нередко посты — это простыни с кучей ответов разным людям. И если среди этой тучи условно малоинтересных ответов есть один интересный фрагментик, то не получится отметить как заслуживающий внимания именно его. Только весь длиннопост целиком. Такой вот потенциальный недостаток.
>>89224 Я не знаю файлообменников, кроме имиджборд, а на них у меня не грузит ._. >Как я понимаю, отправлять она отправляет, а вот скролл не происходит, так? Вообще не понимаю, о чем ты. Она отправляет вниз страницы обычно. Но иногда она ничего не отправляет, а только сворачивает окошко ответа вверху треда. А как теперь вообще кириллические файлы загружать?
>>89258 это есть очень плохо ( >>89261 http://dropmefiles.com вот тебе самый лучший файлообменник.
>>89240 запилить комментирование постов же! Так до своего вконтактика докатимся, лол >>89262 Угу, спасибо. >>89224 Тогда вот, держи, Хомура. http://dropmefiles.com/c2ME4
Перекат >>89319