Ычан: [d | au / b / bro / hr / l / m / mi / mu / o / r / s / sci / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn / vo]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 12507)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5000 кБ.
  • Ныне 3679 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
3Jre3k2Xiic.jpg - (37.19KB, 604×471)
12507
No. 12507  
Посоны, зацените борду на крестах.
https://github.com/ololoepepe/ololord
https://ololoepepe.me/board
Пик слегка рилэйтед.
67 сообщений пропущено. Показаны 50 последних сообщений
No. 12601  
>>12600
То есть link.getBoundingClientRect();
No. 12602  
А, все ясно. Вместо link.left надо видимо link.style.left, но там пусто, что логично, ведь никто не задавал link этот стиль.
No. 12603  
Опередил. Пробую.
No. 12604  
Ну заработало. А чем это лучше?
No. 12605  
>>12604
Возможно, дело в том, что он добавляется раньше, чем загружается, из-за этого post.scrollHeight автоматически присваивается 0. Добавь строчку
alert(post.scrollHeight)
Если будет 0, значит так и есть.
No. 12606  
>>12605
Точно нет. Добавление происходит после загрузки. Хоть алерт и пишет 0, но дело точно в чем-то другом. Добавление происходит в коллбэке, который вызывается после завершения запроса, когда данные уже получены.
No. 12607  
Нашел причину. Если элемент не внедрен в DOM (appendChild), то scrollHeight 0, если же сначала добавить, а потом манипулировать этим свойством, то все ок.
No. 12608  
Вот теперь работает замечательно. Ох уж эти ваши HYML и JS, сказал бы я, что я с их мамой делал. Спасибо тебе, добрый человек.
No. 12609  
>>12608
>HTML
фикс
No. 12610  
>>12606
Я не знаю подробностей, но у тебя есть только 2 варианта сделать это.
1. Создаешь пост через document.createElement. Далее на post.onload вешаешь функцию показа превью.
2. Как у меня. То есть сначала добавляем, но делаем невидимым. А когда загрузится, то раскрываем и ставим на место. Тут даже обработки загрузчиков не нужны.
Такие дела.
No. 12611  
А, уже все. Ну ладно. Тебе тоже спасибо про информацию о JSON. Надо бы мне изучить аякс поподробнее.
No. 12612  
>>12611
>за информацию
фикс
No. 12613  
Принцип JSON прост. Обмен происходит, по сути, объектами JS, превращенными в строку (JSON.stringify). Ну, типа, var x = {"field1": 100, "field2": "9000"};
Эта байда обертывается в строку JSON.stringify(x); и шлется на сврвер.
Сервер получает, превращает в зависимости от языка и реализации в объект этого языка. В моем случае это cppcms::json::object.
Там ты что-то делаешь, а потом отдаешь клиенту, опять же, JSON, который преобразуется в строку и передается, а при получении из строки превращается в JS-объект: var y = JSON.parse(response);
Ну и с ним уже делаешь что тебе надо, например, берешь шаблон поста: var post = document.getElementById("postTemplate");
И вставляешь куда надо данные из полученного JSON-а: var name = y["name"];
document.getElementById("postTemplateName").appendChild(document.createTextNode(name));
А потом заполненный шаблон уже внедряешь в DOM где надо.
No. 12615  
>>12613
Так может сразу на JS борду и писать? Зачем все эти наворосы с плюсами, если все равно костыль на костыле?
No. 12618  
>>12615
А можно сразу умереть, все равно все умрем. На жс в качестве основного языка я разве что под дулом пистолета перейду. Да и где костыли? AJAX - уже давно общепринятая практика, это только всякие закостенелые ычаны до сих пор ничего кроме постформ не могут.
No. 12619  
Вчера видел картинку вконтактике. Прямо вот в тему. Ня.
https://vk.com/nii_rap?z=photo-71794920_354055416%2Falbum-71794920_00%2Frev
No. 12620  
>>12619
Ну да, почти так и есть. Только я все хочу на крестах писать. Щито поделать, говноедом быть не запретишь.
No. 12621  
Шутки шутками, а я тем временем допилил просмотр постов по наведению на ссылку и приделал обновление тредов (загрузку новых постов без обновления страницы).
А еще придумал такую безумную штуку: на специальной доске при создании треда указывается ссылка на тред с другой борды (с ычана, например). Если зайти в тред, то "внешний" тред будет отображаться сбоку в ifram'е (растягивается на почти весь экран при наведении мыши). Можно сидеть во "внешнем" треде и одновременно обсуждать его.
No. 12625  
Снимок.png - (317.64KB, 1452×832)
12625
Запилил постинг нескольких файлов (пока только в /h/, ибо нефиг), и, благодаря очепятке одного анона в /pr/, возможность вместо [code lang="cpp"]...[/code] писать сразу [cpp]...[/cpp] (ну и [php], [hasskel] и т.д., естественно, тоже).
No. 12626  
>>12615
Те кто сейчас пишут на жс либо не умеют этого делать, либо выросли из написания борд давным-давно.
No. 12627  
>>12626
>выросли из написания борд давным-давно
... и пишут robust scalable enterprise singletone proxy factory bean'ы на жабе, ага.
No. 12658  
Поздравляю с публикацией на хабре
No. 12659  
>>12658
Спасибо, но не первая же. И вообще, хватит делать из меня вниманиешлюху, ууу~
No. 12665  
>c++
>ORM
Новые горизонты говноедства.
No. 12672  
>>12665
No. 12687  
>>12621
Отличная вещь для набегов.
No. 12688  
>>12687
Хм, о таком применении я даже и не подумал.
No. 12730  
[личный_бложек]
+ Исправил превью постов в хромом брошзере ко-ко-ко, веб-стандарты, один код, везде одинаково, хуй там
+ Добавил поддержку тегов [sup] и [sub]
+ Добавил автообновление треда и подсветку новых постов
+ Прикрутил превью (thumbnails) для вемок (WebM)
+ Сделал чтоб при неправильно заполненной форме никуда не перенаправляло, а только сообщало об этом (форма постится в скрытый iframe)
[/личный_бложек]
Какого хуя тут разметка не понимает список, если каждую строку начинать со звездочки?
No. 12747  
Продолжаем.
+ Картинки и вемки (WebM) теперь по щелчку открываются в плавающем "окошке". Можно елозить ими по окну, зажав мышь (только картинки, вемки не двигаются), а также масштабировать колесиком.
+ Теперь сохраняется информация о разрешении вемок, и вообще доступ к мета-информации происходит быстрее.
+ Добавлена кнопка "Пожаловаться" (с сюрпризом, естественно, ибо жаловаться стремно).
+ Добавлены превью для загружаемых файлов (только картинки). В целом несколько красивее стало поле для выбора файлов.
+ Переработана система добавления/хранения постов: ренедрится пост теперь при создании, в базе хранится как исходный текст, так и то что отрендерилось. Небольшой оверхед по памяти (несущественный на фоне прикрепляемых файлов), зато быстрее отдача и гораздо менее затратны по нагрузке следующие две фичи.
+ Добавлена карта постов (штука внизу поста со ссылками на ответы).
+ Тег [code] включен на всех досках.
No. 12754  
Снимок.png - (136.95KB, 1406×927)
12754
+ Добавил возможность определения реального IP для непрозрачных прокси (тех, которые ставят заголовки X-Forwarded-For и X-Client-IP). Правда, я таких не нашел, но тем не менее. Охуительные механизмы проверки, типа попыток подключения к клиенту по порту 8080, реализовывать не стал: бред сивой кобылы какой-то, хочет человек - пусть сидит через прокси, всегда можно IP внести в черный список.
+ Весь JS-код завернул в нэймспейс, поудалял лишние файлы, слил все в три основных (общеупотребительный, для досок/тредов и отдельный только для тредов, чтобы другие страницы не засорять).
+ Реализовал механизм "дедупликации", как его назвал один анон (хоть это и не совсем точное название). При выборе файла вычисляется его хеш, отправляется запрос на сервер с целью узнать, есть ли там уже такой файл. Если есть, input очищается, а в скрытый input добавляется хеш (работает и для нескольких файлов, само собой). На клиенте по хешу находится соответствующий файл и копируется с изменением названия. Дедупликация получается только для юзера, но лучше лишний мегабайт занимаемого места, чем переусложнение логики.
+ Исправил вставку ссылок на пост. Теперь фокус передается текстовому полю, а вставка осуществляется не в оба поля, а только в то, которое открыто. Также после ссылки добавляется пустая строка. Разумеется, если оба поля ответа закрыты, тогда уж вставляется в оба.
+ Поправил отображение кнопок на превьюхах постов (те, которые отображаются при наведении на ссылку).
+ Добавил возможность премодерации. Не пугайтесь, премодерирует тот, кто отправил пост, а не мочератор. Премодерируемый пост будет виден только тому, кто его оставил (ну и моче/админу, само собой). Включается установкой галки внизу. Для этого надо залогиниться (об этом отдельно ниже). При редактировании (кнопка справа от поста), когда юзер наконец созреет представить общественности свой высер, надо убрать галку. После того, как пост будет отредактирован со снятой галкой, больше его редактировать станет нельзя.
+ Добавил кнопку для скачивания всех картинок из треда. Нужно для этого зайти в тред, тогда кнопка справа от ОП-поста появится. Может, в дальнейшем сделаю, чтобы в тред не надо было заходить.
+ Сделал чтоб неактивная вкладка с тредом начинала мигать иконкой, если там появились новые посты (работает, очевидно, если включено автообновление треда).
+ Сделал чтоб можно было переключать стили (пока, правда, стиль один, да и тот не идеальный, но тем не менее). Заодно загнал все стили в один файл. Глупо было ради экономии 1-2 КБ раздристывать CSS на кучу файлов.
+ Добавил кнопки поиска по картинке. Как здесь.

Ну и малоинтересные технические детали:

+ Добавил возможность для админа постить голый HTML (включается галкой). Удобно для оформления прикрепленных тредов, например.
+ Для черного списка сделал возможным указывать IP при помощи Wildcard. Возможно, надо было лучше диапазоны сделать, ну да ладно, все равно не пользуюсь им.
+ Добавил список IP, запросы с которых не нужно логгировать. 192.168.0.2 (рабочий пека) и 192.168.1.* (вафля) добавил, например, и сразу стало чище.
+ Добавил возможность редактировать помимо текста поста еще и тему, мыло и имя.

Теперь по поводу залогинивания. Тут (или не тут, не помню уже) кто-то возмущался по этому поводу. Так вот. Логин - это вам не регистрация. Сервер никакой инфы при этом не хранит. Логин записывает введенное слово в виде хеша и передает на сервер при запросах как cookie. С помощью этого происходит идентификация, можно не вводить пароль для постов и можно редактировать перемодерируемое сообщение. Вот так. Никаких трипкодов и прочей мути при этом не отображается. Можно, конечно, соответствующую галку поставить, и трип появится, но никто не заставляет. Регистрация с занесением в базу тоже предусмотрена, но продавать ее или регистрировать на халяву я не буду. Это функция исключительно для идентификации админа и мочераторов, буде таковые появятся, что, к слову, сомнительно. И еще раз подчеркну, что в любом случае, пока не поставлена галка, независимо от логина, регистрации и положения звезд, ваши посты ничем не отличаются от других.
No. 12756  
>Как здесь
Спалился, что на доброчане то же самое постил, да.
No. 12757  
>>12754
>+ Добавил возможность премодерации. Не пугайтесь, премодерирует тот, кто отправил пост, а не мочератор. Премодерируемый пост будет виден только тому, кто его оставил (ну и моче/админу, само собой). Включается установкой галки внизу. Для этого надо залогиниться (об этом отдельно ниже). При редактировании (кнопка справа от поста), когда юзер наконец созреет представить общественности свой высер, надо убрать галку. После того, как пост будет отредактирован со снятой галкой, больше его редактировать станет нельзя.

Это же черновики, а не премодерация.

Модерация подразумевает участие в постинге третьего лица с большими правами.
No. 12758  
>>12757
Да знаю, переименую потом. Просто так один анон это дело назвал, я с таким названием и сделал.
No. 12765  
+ Переименовал везде систему премодерации в систему черновиков.
+ Подправил разметку (сам не помню уже, что и где исправил, вроде что-то с цитированием).
+ Запилил возможность делать ссылки на посты с других досок (примерно как здесь, только с еще одним слешем перед именем доски).
+ Исправил выделение постов при клике на ссылки.
+ Добавил мини-список правил под формой ответа (как у всех, короче).
+ Добавил страницу с описанием разметки.
+ Если пост, на который ссылался другой пост, удаляется, то ссылка на удаленный пост становится неактивной (точнее, превращается в обычный текст).
Технические мелочи:
+ Улучшил систему ведения логов (более единообразно и более информативно теперь).
+ В новостях и правилах теперь HTML, можно все что угодно туда вставлять (раньше был простой текст, только ссылки автоматом вставлялись).
Пока что, наверное, хватит, а то уже свистоперделки начинаются. Еще совместимость с куклой попробую сделать, а так можно в релиз выкатывать.
Админ, запили разметку списков, ну, это легко же.
No. 12773  
Снимок.png - (244.09KB, 1411×928)
12773
Несколько оптимизировал свое поделие:

+ Информация о файлах (картинках) теперь хранится в базе (да, раньше в файле хранилась, потому что изначально не предусмотрел и было лень переносить посты из старой базы в новую).
+ Ссылки на посты теперь хранятся в отдельной таблице, что существенно увеличивает скорость их добавления и особенно удаления (раньше при удалении приходилось читать и записывать каждый пост).
+ Добавил поле "userData" в таблицу "posts" - дополнительные данные для нестандартных досок. Раньше приходилось извращаться с запихиванием, например, в поле "subject", то есть жутчайший говнокод.
+ Проверка капчи и все операции с файлами (сохранение и создание превью) теперь происходят до начала транзакции БД, чтобы не вызывать длительной блокировки.
+ Удаление файлов происходит после завершения транзакции, что, как и в предыдущем пункте, снижает длительность блокировки, а также не приводит к преждевременному удалению файлов, если вдруг транзакция откатится.
+ Файлы превью при откате транзакции теперь также удаляются (раньше не удалялись).

Прочие мелочи:

+ Для файлов без расширения оно автоматически выбирается на основе MIME-типа и добавляется к имени.
+ Теперь отображается дата и время последнего редактирования поста. К черновикам не относится (пока пост в статусе черновика, его можно сколько угодно редактировать, эта шняга не появится). Сделано, по сути, для того, чтобы показывать, когда мочератор/админ злоупотребляет полномочиями, чтобы без повода все подряд не редактировал.
+ Забаненные IP, а также IP, запросы с которых не логгируются, теперь задаются в виде диапазона (192.168.0.1-192.168.0.255), а не wildcard'ом, как раньше.
+ Исправлено отображение трипкода (а то он даже при включенной галочке не отображался, может это и к лучшему было, лол).

И еще (хоть к движку это и не относится): отключил форму поиска, а то, говорят, у некоторых страница не отображалась, пока эта сраная форма не прогрузится (что странно, ведь у меня то отображалась).
No. 12776  
>>12773
Сначала я хотел задать вопрос, но потом понял, что неправильно прочитал. Попробуй почитать что-нибудь про архитектуру по, у тебя ее нет.
И про сети тоже что-нибудь почитай, чтобы слово маска имело ассоциацию и с ними.
No. 12777  
>>12776
Попробуй пойти на хуй.
No. 12779  
13773693225469.jpg - (47.46KB, 543×422)
12779
>>12777
Знаем мы ваши robust scalable enterprise архитектуры.
No. 12781  
Снимок.png - (40.47KB, 964×745)
12781
+ Исправил сообщение "Вам не надо вводить капчу. Осталось постов без капчи: N". Теперь после отправки очередного сообщения количество оставшихся постов автоматически обновляется.
+ Добавил поддержку видео .mp4 и .ogg (.ogv).
+ Добавил поддержку аудио .mp3, .ogg, .wav.
+ Для всех типов файлов добавил иконки в поле выбора файла и логотипы в теле поста (логотип используется, если не удалось, к примеру, создать thumbnail для видео, а также для всех аудио-файлов).
+ Добавил возможность отмены скачивания файлов из треда. Также кнопка закачки блокируется после нажатия.
+ Количество постов, которые можно оставить без ввода капчи, теперь сохраняется после перезапуска сервера.
+ Улучшена разметка. Привет тем, кому не нравятся bbCode'ы. Пикрелейтед. Да, на одной борде подсмотрел. Нет, не на той самой.
+ Добавил возможность заново отрендерить все посты одной командой. Будет полезно при изменениях в разметке и в некоторых других случаях, связанных с администрированием.
No. 12788  
>>12781
Зачем ты это сюда пишешь?
No. 12789  
Почитал посты ОПа в начале треда.
Ну ты ещё тот мудак оказался, да. Как твой ник увидел, сразу понял это.
No. 12790  
>>12789
Отлично бомбит, так держать.
No. 12794  
>>12789
Ну, они когда мой ник увидели, сразу поняли, что это я борду делал.
Ну глючила борда из треда и на ololoepepe.me...
No. 12795  
>>12794
Сема плис. Нельзя так бомбить.
No. 12796  
>>12795
Убогий, ты кто такое? Местный рыцарь, защитник справедливости? Пока что у тебя выходит жалко. Для начала неплохо бы начать на человеческом языке говорить, а не набором фраз с лурочки.
No. 12797  
>>12796
Клован, угомонись уже, ты смешон.
No. 12798  
О, быстрый фтп с террабайтом прона, заебись. Пожалуй я останусь у тебя.
No. 12799  
>>12798
Не злоупотребляй только, или заблочу. А так на здоровье.
No. 12812  
>>12795
Лол, это я написал просто для лулзов.
Если и бомбит, то не у меня, я к борде никаких претензий не имею.
No. 12813  
>>12812
Ну, тот анон был какой-то очень обиженный (непонятно, правда, на что), вот я и подумал, что это он пытается за меня семенить.
Удалить сообщение []
Пароль  
[Mod]