Loading...
Normal, Gallery, Tree

Новостей, фичреквестов и багрепортов тред №22

Двадцать первый: >>52337
Replies: >>55753
>>54220
Нужно, потому что системная регулировка регулирует браузер в целом, а я хочу на разных сайтах разную громкость.
Replies: >>54244
>>54219
Хочешь скачать борду – поставь лимит не ниже чем у неё. Ну или конкретно для синка разрешить оверрайдить лимит (хотя это будет очень странно, ты видишь на борде файлы по 50 МиБ, но при этом не можешь их же загрузить даже с учётом дедупликации, ибо лимит локальный меньше).
Replies: >>54247
>>54231
>>54231
README
Apply config changes to boards/config/config.ini.
Ну ёпта, обнови реадми.
Replies: >>54241, >>54242
>>54239
Оки-доки.
>>54239
Done.
>>54235
>а я хочу на разных сайтах разную громкость
И слушать их одновременно?
Replies: >>54245
>>54244
Да!
Replies: >>54248
>>54236
>Хочешь скачать борду
А кусок борды? Для этого, кстати, весьма желательно лить шо список, шо посты начиная с новейших.
>хотя это будет очень странно, ты видишь на борде файлы по 50 МиБ, но при этом не можешь их же загрузить
Чего странного-то?
Replies: >>54251
>>54245
Тогда надо отдельный режим плеера с регулировкой громкости с точностью до тысячных и шоб на фоне всегда была НЁХ, ибо ты наркоман.
Replies: >>54252
>>54238
А я сам догадался, default_settings.ini же :P
>>54247
>А кусок борды?
Кусок борды будет, когда будет фильтрация. Сейчас там заглушка, оно не умеет ни просить фильтр, ни отдавать. Мне нужно время и доступ к нормальной IDE (т.е. быть дома), чтобы это написать.
>Чего странного-то?
То что ты не можешь загрузить файл, который уже лежит. Вроде как есть лимит, а вроде как и есть файлы, его нарушающие.
Replies: >>54262, >>54264
>>54248
Надо чтобы на марочке была только кнопка play/pause, а где-то глобально на странице висел плеер с плейлистами, громкостью и всеми необходимыми настройками.
Replies: >>54260
>>54252
Как в телеграме?
>>54251
А с чего им не быть, если борда другая? На другой борде другой бамплямат, другая архивация, другие теги обязательные даже могут быть.
Replies: >>54266
>>54251
IDE не нужны же.
Replies: >>54265
>>54264
Без неё писать большой кусок кода очень неудобно.
Replies: >>54269
>>54262
Ну тогда не удивляйся, что у тебя синк падает. Другая борда – другой лимит файлов, ты проиграл.
Replies: >>54272
>>54265
Обоснуй.
Replies: >>54271
>>54269
Что тут обосновывать? Если ты пишешь код, который затрагивает разные файлы и разные куски файлов, тебе надо переключаться между ними и чтобы они друг друга видели, и предлагали подсказки. Собственно в этом и заключается задача IDE.
Replies: >>54273
>>54266
Предлагаешь запретить конвертеры из PDF в TXT?
>>54271
>тебе надо переключаться между ними
Ну переключайся.
>и чтобы они друг друга видели
В перископ видели?
>и предлагали подсказки
Может, пускай код сразу пишут?
>в этом и заключается задача IDE
Задача IDE — компенсировать отсутствие из коробки под руками мощи юниксвея на всяких там виндах для неосиляторов юниксвея. И ещё втюхивать за денюжку кучу прибитых друг к другу гвоздями инструментов, чтоб их не покупали отдельно и не использовали с чужими средствами.
Replies: >>54275
>>54273
>Задача IDE — компенсировать отсутствие из коробки под руками мощи юниксвея на всяких там виндах для неосиляторов юниксвея.
Не угадал. Задача IDE – связывать все элементы проекта между собой и обеспечить быструю навигацию, подстановку кода и рефакторинг.
Replies: >>54276
>>54275
>связывать все элементы
Пикрилейтед.
>быструю навигацию
ctags?
>подстановку кода
Ты о чём? Сниппеты, что ли? Проблемы говноязыков, требующих писать кучу шаблонного кода для тривиальных задач.
>рефакторинг
sed, в запущенных случаях ропа.
Replies: >>54277
>>54276
>ctags?
Возможно умеет, я не пробовал.
>Ты о чём?
О том, что когда ты хочешь написать someObject.someMethod, название someMethod тебе подскажет IDE (как и список аргументов). С питоном это конечно может быть сложнее, еслио объёкт хуй знает откуда достали, но всё же.
>sed
Ну расскажи мне, как sed добавит новый аргумент в метод и подставит значение по умолчанию во все места, где он вызывается. И именно этот метод, а не все с таким же названием у других классов.
Replies: >>54289
ИДА нинужна когда есть хорошая документация, например.
Replies: >>54291
>>54277
>название someMethod тебе подскажет IDE (как и список аргументов)
У тебя там WinAPI-like-методы с десятками аргументов?
>еслио объёкт хуй знает откуда достали, но всё же
Он по дефолту хуйзнаетоткуда, ибо классы можно динамически расширять. Это тебе не жаба и не плюсы, в которых классы суть прибитые гвоздями struct с this/self и инкапсуляцией. Надо в реалтайме дампать/дебагать и смотреть.
>И именно этот метод, а не все с таким же названием у других классов
Проблемы всякой дублирующейся хуйни типа get/set и прочих toString. Я не зря сказал про запущенные случаи. При хорошем проектировании имена методов того же порядка уникальности, что и имена классов из разных пакетов. А если вдруг такой дубликат неожиданно закрался, его отловят юнит-тесты. У тебя же есть юнит-тесты?
Replies: >>54294
>>54281
А если нету, проще написать документацию, а не разработать продукт-костыль. Что только подтверждает, что продукты сии пишутся не из любви к разработчикам и желания им благ.
>>54289
>У тебя там WinAPI-like-методы с десятками аргументов?
А у тебя все методы с одним аргументом, и этот аргумент у всех одинаковый?
>Он по дефолту хуйзнаетоткуда, ибо классы можно динамически расширять.
Можно и расширяют – не одно и то же. Я вот стараюсь подсказки типов использовать, где получается.
>При хорошем проектировании имена методов того же порядка уникальности, что и имена классов из разных пакетов.
Сфигали? У разных классов могут быть одинаковые действия.
>У тебя же есть юнит-тесты?
Есть, но там дааааалеко не всё. Мне лень их писать.
Replies: >>54297
>>54294
>А у тебя все методы с одним аргументом, и этот аргумент у всех одинаковый?
У меня динамическая типизация и варарги во все поля, 2к17 на дворе, а ты всё порядок аргументов подбираешь, как в винапи. Дохуя аргументов — признак вонючего кода, плохой связности и плохого распределения обязанностей. Так и запишем — IDE нужны говнокодерам, чтобы облегчить написание говнокода. Если метод можно разбить на более мелкие, решающие более узкие задачи, чтобы их можно было трейлить в произвольном порядке и комбинациях, то можно и нужно это делать. А ещё пердон умеет в именованные аргументы.
>Я вот стараюсь подсказки типов использовать, где получается
И плодить сущности? Небось, за полиморфизм ещё топишь?
>У разных классов могут быть одинаковые действия
Если Паша срёт и Маша срёт, то почему затыкание Паше жопы пробкой должно сломать Машу? Маша же тоже от человека наследуется, и жопа у неё там же; будет вместо срать() тоже сратьРтом(). А вот если заставить Машу рожать, то Паше побоку, ибо рожать он всё равно не умеет. Правда, потом появляется какой-нибудь трансгендер, который умудрился получить мужские документы, оставив себе матку, и приходится из-за него пихать в код костыли…
>Мне лень их писать
Ну я ж говорю, что говнокодер. Уже и ругал тебя пару раз в этих тредах за говнокод, и то — смотрел далеко не всё, а только то, что нужно было.
Replies: >>54307
>>54297
>2к17 на дворе
Это не значит, что синтаксис должен превращаться в кашу.>Дохуя аргументов — признак вонючего кода, плохой связности и плохого распределения обязанностей. Так и запишем — IDE нужны говнокодерам, чтобы облегчить написание говнокода. Если метод можно разбить на более мелкие, решающие более узкие задачи, чтобы их можно было трейлить в произвольном порядке и комбинациях, то можно и нужно это делать.
Сам придумал, сам опроверг, сам навесил ярлык. Молодец.
>И плодить сущности?
Мало прочитать умное слово, нужно ещё понимать, что оно значит.
Replies: >>54308
>>54307
>Это не значит, что синтаксис должен превращаться в кашу
При чём тут синтаксис? Альзо, каша как раз последовательная куча аргументов, пережиток ассемблера.
>Сам придумал, сам опроверг
Ты каким местом читал?
>умное слово
Какое, полиморфизм?
Replies: >>54309
>>54308
>При чём тут синтаксис?
Ну это же ты к чему-то начал про переменные аргументы затирать.
>Ты каким местом читал?
Не тем, каким ты писал.
>Какое, полиморфизм?
"плодить сущности". Указание типа – это уже сущность? Ну давайте вообще все ключевые слова выкинем из языка, не будем плодить. Оставим только object.
Replies: >>54337
>>54309
>Ну это же ты к чему-то начал про переменные аргументы затирать
И что, варарг портит синтаксис?
>Не тем, каким ты писал
Ну этим и не надо, если это не брайльскрипт или если ты не экстрасенс.
>Указание типа – это уже сущность?
А, ты про эти подсказки.
>Оставим только object.
Поздравляю, ты придумал JS Scheme.
О, Нека, ты похож на Дурова, сделай, чтобы при воспроизведении видео время от времени редиректило на страницу входа в админку (ибо других страниц входа тут нету). И просило там номер телефона ввести.
Replies: >>54366, >>54368
>>54362
wat
>>54362
Нет, нет. Не так. Треды без комментариев, вот что нужно.
Replies: >>54378
>>54368
Так комментарии и так недотреды, привязанные к другим тредам. Впрочем, тебе и тред ничто не мешает привязать, как чейнят всякие активные бампляматящиеся треды.
Replies: >>54398
>>54378
Тебе смешно, а я первую версию неборды задумывал как концепцию "всё есть пост". Но оно как-то сразу не взлетело…
Replies: >>54404
>всё есть пост
Двухпанельный интерфейс, слева список постов, справа список комментов к нему. Теги вешать на любые посты.
Replies: >>54405
>>54398
А ты верни, вдруг взлетит.
>>54402
Тише-тише, не надо нам тут плавающих дверей.
Тем временем разработочка продолжается и на арену выходит наш спонсор показа — анимированно-упоротая кнопка! Анимированно-упоротая кнопка станет вашим лучшим другом при посещении неборды и позволит долгими зимними вечерами сидеть и… тыкать в неё! Да-да, вы не ослышались — тыкать в неё! Внимание, при загрузке нескольких аудиофайлов прямо сейчас вы получаете возможность тыкать не одну, не две, а целых ТРИ анимированно-упоротых кнопки! Анимированно-упоротая кнопка — только на неборд точка ме! Посетите также наши зеркала в социальных сетях Тор, Айтупи и Сиджейдиэнэс.
Replies: >>54412
>станет вашим лучшим другом
я смогу её сжечь?
Replies: >>54409
>>54408
Специально для тебя как первого покупателя запилю функцию сжигания кнопки!
Replies: >>54410
>>54409
З. Ы. После сжигания кнопки воспроизведением, разумеется, управлять будет больше нельзя.
Replies: >>54411
>>54410
То есть, оно станет неуправляемым?
>>54406
А код где?
Replies: >>54419
>>54412
JS с прошлого раза не менялся.
DEBUG 2017-01-18 14:53:55,482 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54440
DEBUG 2017-01-18 14:53:55,498 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54441
INFO 2017-01-18 14:53:55,498 [boards.sync] Starting sync...
INFO 2017-01-18 14:53:55,499 [boards.sync] Running GET request...
INFO 2017-01-18 14:53:55,581 [boards.sync] Processing response...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/root/neboard/boards/management/commands/sync_with_server.py", line 92, in handle
SyncManager.parse_response_get(content, file_url)
File "/root/neboard/boards/models/post/sync.py", line 173, in parse_response_get
SyncManager.parse_post(tag_model, hostname)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/root/neboard/boards/models/post/sync.py", line 262, in parse_post
version=version)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/root/neboard/boards/models/post/manager.py", line 162, in import_post
self._add_file_to_post(file, post)
File "/root/neboard/boards/models/post/manager.py", line 194, in _add_file_to_post
post.attachments.add(Attachment.objects.create_with_hash(file))
File "/root/neboard/boards/models/attachment/__init__.py", line 22, in create_with_hash
hash=file_hash)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 399, in create
obj.save(force_insert=True, using=self.db)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 796, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 833, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/usr/local/lib/python3.5/dist-packages/django/dispatch/dispatcher.py", line 191, in send
response = receiver(signal=self, sender=sender, **named)
File "/root/neboard/boards/signals.py", line 106, in generate_thumb
thumb_content = thumbs.generate_thumb(instance.file, size, split[1])
File "/root/neboard/boards/thumbs.py", line 31, in generate_thumb
image = Image.open(img)
File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2339, in open
im = _open_core(fp, filename, prefix)
File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2330, in _open_core
_decompression_bomb_check(im.size)
File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2274, in _decompression_bomb_check
DecompressionBombWarning)
PIL.Image.DecompressionBombWarning: Image size (144000000 pixels) exceeds limit of 89478485 pixels, could be decompression bomb DOS attack.
ЧЯДНТ?
Replies: >>54443, >>54466
>>54442
Это что же получается, в одном из постов на неборде содержится декомпрессионная бомба, и из-за защиты сикнуться с небордой нельзя?
Replies: >>54444, >>54445
>>54443
Что за пост?
Replies: >>54446
>>54443
Вообще на неборде не должно быть таких постов. Я один находил, но грохнул.
Replies: >>54659
>>54444
Не знаю.
Replies: >>54447, >>54448
>>54446
Так поставь туда лог, пусть напишет id
>>54446
Как выяснить номер поста?
Replies: >>54449
>>54448
File "/root/neboard/boards/models/post/sync.py", line 173, in parse_response_get
Где-нибудь там выведи хоть целиком пост, хоть его id достань из xml.
Replies: >>54451, >>54452
>>54449
Поподробнее?
>>54449
P.S. Я же не кодер, и в этих вагих джангах не разбираюсь.
Replies: >>54454
>>54452
Хотя, стоп, кажетсо я понял.
Replies: >>54459
Шёл 2к17, а нека до сих пор не починил таймауты и грузить на борду файл, который выгружается более полуминуты, бесполезно.
>>54454
По моим данным, это пост >>18905.
Replies: >>54460, >>54465
>>54459
Нет больше ваших постов. Продолжай синкать.
Replies: >>54464
>>54460
Такими темпами, которыми листинг делается, я синкать буду неделю, не меньше. Мне кажется, он с каждым разом всё медленнее и медленнее проходит, уже больше часа. И после каждого обрыва проходит заново.
Replies: >>54466, >>54468, >>54506
>>54459
А чё у меня он отсинкался?
>>54464
У меня листинг занимает 10-15 минут.
>>54442-кун.
Replies: >>54467
>>54466
Это что-то очень странное. Листинг это просто список, не может он так много занимать.
Replies: >>54468
>>54467
Синхронизация тоже идёт заметно медленнее, чем в начале. Возможно, проблемы на стороне хостера, но у >>54464 те же проблемы, что странно.
Replies: >>54469
>>54468
WTF? Либо это говнохостер (что вряд ли, ибо Селектел), либо проблемы на стороне небордочки.
Replies: >>54470, >>54471
>>54469
root@cs65216:~# speedtest-cli --simple
Ping: 11.663 ms
Download: 252.59 Mbit/s
Upload: 192.16 Mbit/s
>>54469
Это именно листинг, или среднее по синку вообще?
Советую добавить -split-query 10 или другое число, чтобы по нескольку постов за раз тянуло.
Replies: >>54472, >>54473
>>54471
>или среднее по синку вообще?
this
>>54471
>Советую добавить -split-query 10 или другое число, чтобы по нескольку постов за раз тянуло
ОК, пробуем.
Replies: >>54474, >>54475
>>54473
Листинг.
>>54473
По-прежнему медленно :-(.
Replies: >>54476
>>54475
Странно с учётом того, что там скорость вроде как и не критична. Листинг это один xml-файл со списком постов и их версий. Не понимаю, что там может тормозить.
DEBUG 2017-01-18 18:03:41,754 [boards.sync] Parsed new post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::25486
DEBUG 2017-01-18 18:03:43,984 [boards.sync] Parsed new post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::25487
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/root/neboard/boards/management/commands/sync_with_server.py", line 92, in handle
SyncManager.parse_response_get(content, file_url)
File "/root/neboard/boards/models/post/sync.py", line 173, in parse_response_get
SyncManager.parse_post(tag_model, hostname)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/root/neboard/boards/models/post/sync.py", line 241, in parse_post
raise SyncException(EXCEPTION_DOWNLOAD)
boards.abstracts.exceptions.SyncException: File was not downloaded.
ЧЯДНТ?
Replies: >>54481
>>54480
Хм, >>25487 — это, судя по всему, первый пост на неборде с webm.
Replies: >>54482
>>54481
А ты уверен, что валится именно на нём? Я бы скорее предположил, что там попался html-файл, которые новый загрузчик проинструктирован игнорировать. По хорошему, для синка нужно принудительно использовать стандартный загрузчик с игнорированием любых ограничений.
Replies: >>54483
>>54482
>Я бы скорее предположил, что там попался html-файл, которые новый загрузчик проинструктирован игнорировать
Точно, я немного перепутал циферки, следующий пост — это html-файл.
>По хорошему, для синка нужно принудительно использовать стандартный загрузчик с игнорированием любых ограничений
И как это сделать?
Replies: >>54484, >>54485
>>54483
>следующий пост — это html-файл
То есть, я хотел сказать, содержит html-файл.
>>54483
>И как это сделать?
Обновиться и попробовать ещё раз. Я запушил фикс.
Replies: >>54486
>>54485
А я подожду, ещё только на 21066.
Replies: >>54701
Добавил возможность синкать только заданный тред. Указывается через –thread.
Пока не могу гарантировать, что работать будет идеально, учитывая что между тредами перекрёстные ссылки. Т.е. не гарантирую, что после парса нескольких тредов у вас ссылки между ними разрезолвятся в собственно ссылки и рефлинки.
Replies: >>54491
>>54490
Также теперь относительно просто добавлять новые фильтры. См. sync_filters.py. Кому надо, можете по аналогии сделать фильтры на теги, например.
>>54464
Насколько я понял из кода, XML как раз качается быстро, это тормозная шестерня часами его потом пережёвывает. Но какого хуя? Что может быть проще полсотни тысяч записей на наличие проверить?
Replies: >>54508, >>54555
>>54506
Причём там даже запрос к базе один делается! Это какой-то… позор!?
Replies: >>54509
>>54508
А, не, оно потом теги ищет. Оптимизируй, как-то там, не знаю.
Replies: >>54510
>>54509
Ничего не знаю, у меня быстро работает. Я конечно ещё посмотрю, что можно сделать, но пока кушайте что дают.
Replies: >>54513
>>54510
Ну я кушаю, кушаю, к выходным и докушаю. Наверное.
Итакой, наши заботливые китайские мастера предоставить версий альфа Плеер Чудесный Моргать Кликать Philips. Сделать главный возможность убийца моргание кнопка наркотики мультики. Также фиксики проблема счётчик удар исходник в малая панда и хром и фон почтовая марка чешуйка.
Replies: >>54526, >>54528
>>54525
@кот ты выпуск сепаратист ветка соединение игрок или я соединение мой себя?
>>54525
Изменить громкость у меня не получается, по клику ничего не происходит. Анимация play/pause ущербная.
Replies: >>54554
>>54528
Ня, взял и погасил сервер.
>по клику ничего не происходит
УМВР, только шкала теперь нелогарифмическая. Можно через шебаудиоапи приделать, если у каких-то арбузеров с громкостью медиасорса проблемы.
>Анимация play/pause ущербная
#запилилучше
Replies: >>54561, >>54562
>>54506
>это тормозная шестерня часами его потом пережёвывает
Всё дело в тормозном пайтоне. Надо был описать борду на Node.js или хотя бы Go.
Replies: >>54565
>>54554
>Ня, взял и погасил сервер.
Поднял.
Replies: >>54563
>>54554
>#запилилучше
Нахуя лучше? Там анимация вообще не нужна, тем более кривая.
Replies: >>54564
>>54561
Таки громкость и у меня отрицательная получается. По ходу, с координатами чот налажал, попробую на сдвинутом относительно страницы плеере.
>>54562
Она не кривая, она упоротая, ты ничё не понимаешь :P
>>54555
Ну я начну пилить на ноде форумный двиг эдак через год.
DEBUG 2017-01-19 16:24:06,045 [boards.sync] Parsed new post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::33708
DEBUG 2017-01-19 16:24:08,231 [boards.sync] Parsed new post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::33709
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/root/neboard/boards/management/commands/sync_with_server.py", line 95, in handle
SyncManager.parse_response_get(content, file_url)
File "/root/neboard/boards/models/post/sync.py", line 177, in parse_response_get
SyncManager.parse_post(tag_model, hostname)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/root/neboard/boards/models/post/sync.py", line 240, in parse_post
tag_ref = tag_refs.find("{}[[user]ref[/user]='{}']".format(
AttributeError: 'NoneType' object has no attribute 'find'
ЧЯДНТ?
Replies: >>54579
>>54578
Номер поста в студию.
Replies: >>54583
>>54579
Не видишь — 33710.
Replies: >>54584, >>54585
>>54583
А, точно. Это пошли посты, у которых я случайно удалил картинки когда-то, но кэш старый остался.
>>54583
Пробуй сейчас.
Replies: >>54597
>>54585
Я-то чего? У меня фетчится потихоньку, >>25224 уже. К слову, поставил split-query, а толку пшик, ибо основное время на пережёвывание постов уходит, а не на запросы.
Replies: >>54600
>>54597
>ибо основное время на пережёвывание постов уходит
Может быть дело в sqlite? Оно же жутко медленное.
Replies: >>54613, >>54639
DEBUG 2017-01-19 18:39:44,502 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54584
DEBUG 2017-01-19 18:39:44,530 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54585
INFO 2017-01-19 18:39:44,530 [boards.sync] Starting sync...
INFO 2017-01-19 18:39:44,531 [boards.sync] Running GET request...
INFO 2017-01-19 18:39:45,163 [boards.sync] Processing response...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/root/neboard/boards/management/commands/sync_with_server.py", line 95, in handle
SyncManager.parse_response_get(content, file_url)
File "/root/neboard/boards/models/post/sync.py", line 177, in parse_response_get
SyncManager.parse_post(tag_model, hostname)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/root/neboard/boards/models/post/sync.py", line 190, in parse_post
signatures = SyncManager._verify_model(global_id, content_str, tag_model)
File "/root/neboard/boards/models/post/sync.py", line 315, in _verify_model
raise SyncException(EXCEPTION_SIGNATURE.format(content_str))
boards.abstracts.exceptions.SyncException: Invalid model signature for <content><id key="TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299" local-id="33710" type="ecdsa" /><title>Mein Kampf v2</title><text>В Германии снят запрет на переиздание автобиографической книги Адольфа Гитлера Майн Кампф, после чего с 1 января magnum opus лидера национал-социалзима вновь вернулся на полки магазинов.
Новое издание автобиографической книги стоит 59 евро, насчитывает две тысячи страниц и сопровождается комментариями историков и исследователей, а также анализом идеологии Гитлера, передеает Sky. Стоит отметить, что издание без комментариев экспертов по-прежнему запрещено к продаже.
http://vesti-ukr.com/kultura/131098-v-germanii-vernuli-v-prodazhu-majn-kampf
А как вы считаете, нужно запрещать или изучать книги проигравших вождей и идеологий?</text><tags><tag>германия</tag><tag>гитлер</tag><tag>книги</tag><tag>нацпол</tag></tags><pub-time>2016-01-08 14:55:34.547634+00:00</pub-time><version>1</version></content>.
ЧЯДНТ? Судя по всему, пост тот же — >>33710.
Replies: >>54603
>>54601
Пробуй щас.
Replies: >>54612
>>54603
На данный момент всё нормально (не считая медлительности).
>>54600
Может. Но база ж тоже маленькая.
>>54600
Вряд ли. Отображение тредов ещё может тормозить (особенно больших), но добавляются-то посты при синке по одному. Не думаю, что там тормоза от записи в базу существенные. Хотя я конечно не замерял…
Replies: >>54642
>>54639
Там же ещё теги проверяются как минимум, не?
Replies: >>54643
>>54642
Теги, треды, global id.
Replies: >>54646
>>54643
Во, для каждого треда отдельно. Нельзя, шоле, всё слить и потом из памяти дёргать? Тебя в школе не учили, что СУБД надо дёргать чётко и по делу, а через тупые ORM вещи сложнее КРУДОВ пишут только быдлокодеры? Впрочем, ты и есть быдлокодер.
Replies: >>54648
>>54646
Крч, плюнул на слитые полбазы и подключил постгрес, листинг пошёл быстрей. Но он со скюлайтом первый раз был быстрый.
Во, уже 11715. Ынджой дат дифренс. Поди, ещё и шестерню душить не будет за высокую нагрузку на ЖД при незапущенном сайте.
>>54445
Пок-пок, цензура на ниборди, ещё и ґеты проёбывают! Сегодня он бомбы выпиливает, завтра за неподдерживаемые браузерами медиаформаты возьмётся, а послезавтра постинг с криптосетей вообще обрубит! Верни влорчан, сучечке!
Replies: >>54661
>>54659
Щито поделаешь, за архивацию надо платить. Требования и форматы меняются, а старые данные остаются.
Replies: >>54669
Replies: >>54663, >>54664
>>54662
Сцуко, 77% ЦПУ, ну что за блдажд хрень.
Replies: >>54665
>>54662
P.S. Это замер во время листинга.
>>54663
Ну ты уже определись. То у тебя медленно идёт, то проц грузит. Либо ресурсы простаивают и всё медленно, либо они используются на полную и всё быстро.
Replies: >>54667
>>54665
Ресурсы используются на полную и всё медленно.
>>54661
Пили тогда архив отдельной сущностью.
DEBUG 2017-01-20 19:24:54,100 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54657
DEBUG 2017-01-20 19:24:54,133 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54658
DEBUG 2017-01-20 19:24:54,167 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54659
DEBUG 2017-01-20 19:24:54,200 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54660
DEBUG 2017-01-20 19:24:54,233 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::54661
INFO 2017-01-20 19:24:54,234 [boards.sync] Starting sync...
INFO 2017-01-20 19:24:54,235 [boards.sync] Running GET request...
INFO 2017-01-20 19:24:56,281 [boards.sync] Processing response...
Killed
Ну всё, приехали.
Replies: >>54671, >>55056
А вот если б я не протупил со скулайтом, небось, ещё первый приехал бы!
>>54670
Replies: >>54675
>>54671
Вы тут гонки устраиваете?
Replies: >>54676
>>54675
Не, мы ж не J2ME-версия Viber.
Replies: >>54678
Replies: >>54679
>>54678
При чём тут ваззап и зачем ты принёс столько дохуя минут говорящей головы?
Replies: >>54680
>>54679
Viber, Watzahp, я не разбираюсь в сортах вашей J2ME хрени. Там про того что оно не работает с сертификатами Халмера.
>я не разбираюсь в сортах вашей J2ME хрени
Какой нахуй J2ME, ваззап уже закопали под немейнстрим. Для нокий с предустановленным вроде на полгода отсрочили. На J2ME жив только Jabber, остально либо недоступно, либо через жопу.
>J2ME хрени
Тебе на голову ящик дефисов выслать или почтовым отправлением?
Replies: >>54685
>>54683
Ты и в деревья не разбираешься. В чём ты вообще разбираешься то, лол.
Replies: >>54693
>>54685
Какие нахуй деревья?
Replies: >>54696
>>54693
Каментов.
Replies: >>54702
>>54486
Со скюлайтом так и не дождался, а сегодня за один день дождался. Найс.
Replies: >>54735
>>54696
Проебал, рефы похожи на цитаты.
Граждане гитофобы, тут меркуриалофоб нарисовался, помогите пояснить ему за ту хуйню с проёбыванием после мёржа информации о том, чего из какой ветки было. А то попытался вспомнить и нихуя не понял, дерево веток же гит показывает. Может, там про выпиленные ветки было?
Replies: >>54729
>>54726
В гите принято (не обязательно, но принято как культура), что ты делаешь сколько угодно личных коммитов по мере работы, а потом перед пушем всё это объединяешь в один коммит, и историю стираешь.
Replies: >>54734
>>54729
Не, то не про сквош было. Шо сквош ССЗБ, то понятно
>>54701
Обновился, вмёржил свой фикс, а оно то же самое кидает. Шо за хуйня? Ты это специально?
Replies: >>54737, >>54738
>>54735
Тьфу ты, перетёр аргумент при мёрже, ибо не на тот коммит смотрел, и не заметил :P
>>54735
Найс, зделол, чтоб у меня через жопу было. Там валидация нужна, там не нужна, а ключик-то универсальный! Щяс похуй, потом наюзаешь метод ещё где и форк по пизде пойдёт. Ты хуже гугеля.
Replies: >>54739
>>54738
шта
Replies: >>54740
>>54739
Шта, шта, ты прикрутил аргумент для выключения валидации и теперь при выключении валидации не проверяются размеры. А ещё хыэмэльтэ. На хыэмэльтэ похуй, не нужно, а на размер нужно, ибо не влезет, если выползет за лимит. В итоге пришлось ещё и download пропатчить, чтоб там аргумент юзало, а там нет. Пока валидация только при синке отключается — похуй, а потом ещё чего прикрутишь — и придётся пердолить новые костыли. Из Pale Moon так вон уже выкинули кучу всего, потому что заебались бэкпортировать.
Replies: >>54743
>>54740
Это не костыль. В одних случаях валидация нужна, в других не нужна. Вот и всего.
Replies: >>54745
>>54743
Но логика ентого не остаётся внутри функции.
Replies: >>54748
>>54745
Нихуя не понял.
Replies: >>54752
>>54748
Хули тут неясно. С одним параметром на все точки валидации функция не знает, когда какой набор точек валидации нужен. Или есть полностью, или ваще отрубается.
Replies: >>54753
>>54752
Какой набор? Или валидация нужна, или не нужна. При синке она не нужна.
Replies: >>54756
>>54753
А мне нужна, ибо лимит и перфекционистские неизменяемостепроблемы идут лесом.
Replies: >>54757
>>54756
Что-то не вижу твоего пуллреквеста.
Replies: >>54759
>>54757
Ты ж его отклонил, ибо не нужно.
Replies: >>54760
>>54759
Я отклонил другое. Ты предлагал заменять аттач ссылкой, что недопустимо, ибо нарушает целостность синхронизируемого поста.
Replies: >>54761
>>54760
А ты хошь, чтоб я тебе дикт флагов для валидации напилил? :3
MakE 299 GrEaT AgAiN!
Replies: >>54856, >>54956
>>54853
>299
2333
>>54853
Что такое 299?
Replies: >>54973
Если нопейсать в settings.py 'mysql', то ничего не работает, с 'django.db.backends.mysql' же всё работает. Это фича?
Replies: >>54958
>>54957
В комменте написано:
# Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'
Нека, исправляй.
Replies: >>54959
>>54958
Это коммент джанги, а не мой. Я могу в ридми добавить ссылку на джанговскую документацию, тебя устроит?
Replies: >>54960
>>54959
Тебе решать, я лишь зарепортил НЕОЧЕВИДНОСТЬ.
Алсо, django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'uid' used in key specification without a key length"). Что делать?
Replies: >>54961
>>54960
Хехе, оказывается mysql не умеет индексировать текстовые поля.
Убрал индекс и запушил, обновляйся.
Replies: >>54963
>>54961
Сделал pull и update, но ошибка та же, ЧЯДНТ?
root@cs66901:~/neboard# hg log --limit 5
changeset: 1836:1562865b3389
tag: tip
user: neko259 <neko259@gmail.com>
date: Mon Jan 23 16:25:48 2017 +0200
summary: Updated readme
changeset: 1835:aa9b236193a9
user: neko259 <neko259@gmail.com>
date: Mon Jan 23 16:22:11 2017 +0200
summary: Do not index post's uid field as mysql does not support it
changeset: 1834:e64fc2ba5548
user: neko259 <neko259@gmail.com>
date: Wed Jan 18 20:46:03 2017 +0200
summary: Added ability to filter posts in the LIST request
changeset: 1833:3c5ca02bc54e
user: neko259 <neko259@gmail.com>
date: Wed Jan 18 18:15:12 2017 +0200
summary: Do not run validation on files while performing sync
changeset: 1832:10b12be19c84
user: neko259 <neko259@gmail.com>
date: Tue Jan 17 23:58:09 2017 +0200
summary: Added a setting to enable additional spaces inside spoiler tag
root@cs66901:~/neboard# ./manage.py migrate
System check identified some issues:
WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-sql-mode
boards.Post.attachments: (fields.W340) null has no effect on ManyToManyField.
boards.Post.referenced_posts: (fields.W340) null has no effect on ManyToManyField.
Operations to perform:
Apply all migrations: admin, auth, boards, contenttypes, sessions
Running migrations:
Applying boards.0016_auto_20150421_1803...Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/mysql/base.py", line 110, in execute
return self.cursor.execute(query, args)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 226, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorvalue
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 217, in execute
res = self._query(query)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 378, in _query
rowcount = self._do_query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 341, in _do_query
db.query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1170, "BLOB/TEXT column 'uid' used in key specification without a key length")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/migrate.py", line 204, in handle
fake_initial=fake_initial,
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 115, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration
state = migration.apply(state, schema_editor)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/migration.py", line 129, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/operations/fields.py", line 204, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/base/schema.py", line 495, in alter_field
old_db_params, new_db_params, strict)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/base/schema.py", line 683, in _alter_field
self.execute(self._create_index_sql(model, [new_field], suffix="_uniq"))
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/base/schema.py", line 112, in execute
cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python3.5/dist-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/mysql/base.py", line 110, in execute
return self.cursor.execute(query, args)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 226, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorvalue
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 217, in execute
res = self._query(query)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 378, in _query
rowcount = self._do_query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 341, in _do_query
db.query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'uid' used in key specification without a key length")
Replies: >>54964
>>54963
А вот тут мы наверное проиграли. Даже если в более поздних миграциях есть удаление индекса, в ранних осталось его добавление. Даже не знаю как тут быть, учитывая что миграции на сервере уже применены и редактировать их нельзя.
Replies: >>54965, >>54966
>>54964
Могу предложить руками поковырять их, удалить 16-ю миграцию и поставить 17-й зависимость от 15-й. Но я не знаю, как тогда отработает последняя (удаление индекса, которого ты не создал). Её тогда тоже придётся удалить, но у тебя будут проблемы при обновлениях.
Replies: >>54974
>>54964
Правильно ли я понимаю, что на свежей инсталляции неборды проблемы не будет?
Replies: >>54967
>>54966
На mysql будет. Свежая инсталляция – это накатывание всех миграций по очереди, а проблема в 16-й.
Replies: >>54968
>>54967
Т.е. можно сказать, что небордочка не поддерживает MySQL/MariaDB?
:-(
Replies: >>54969
>>54968
Увы.
МерзоСКУЛЬ всё равно не нужен.
>>54956
Не пытайся постичь суть рандома.
>>54965
Можно пропатчить migrate, чтобы он при обнаружении mysql в конфиге пропускал одну миграцию.
Хуйня какая-то. Начало проебал.
  File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 771, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 57, in connect_global_replies
referenced_post.save(update_fields=['refmap', 'last_edit_time'])
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/__init__.py", line 290, in save
super().save(force_insert, force_update, using, update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 734, in save
force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/base.py", line 758, in save_base
update_fields=update_fields)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/signals.py", line 72, in parse_text
instance._text_rendered = get_parser().parse(instance.get_raw_text())
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/mdx_neboard.py", line 277, in parse
return self.parser.format(text)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/bbcode.py", line 522, in format
return self._format_tokens(tokens, None, **context).replace('\r', self.newline)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/bbcode.py", line 496, in _format_tokens
formatted.append(render_func(tag_name, inner, tag_opts, parent, context))
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/mdx_neboard.py", line 150, in render_reflink
local_id=match.group(3))
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/query.py", line 328, in get
num = len(clone)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/query.py", line 144, in __len__
self._fetch_all()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/query.py", line 965, in _fetch_all
self._result_cache = list(self.iterator())
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/query.py", line 238, in iterator
results = compiler.execute_sql()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 829, in execute_sql
sql, params = self.as_sql()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 378, in as_sql
extra_select, order_by, group_by = self.pre_sql_setup()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 48, in pre_sql_setup
self.setup_query()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 39, in setup_query
self.select, self.klass_info, self.annotation_col_map = self.get_select()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 187, in get_select
for c in self.get_default_columns():
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/sql/compiler.py", line 524, in get_default_columns
column = field.get_col(alias)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/fields/__init__.py", line 339, in get_col
if alias != self.model._meta.db_table or output_field != self:
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/db/models/fields/__init__.py", line 457, in __eq__
if isinstance(other, Field):
RuntimeError: maximum recursion depth exceeded while calling a Python object
Чё его зациклило? Место вроде ещё есть.
Replies: >>54998, >>55071
>>54995
Хы, интересно. Это какой-то пределённый пост?
Replies: >>55055
>>54422
Завезли наконец. Когда выйдет, можно будет попробовать включить.
// На самом деле нет, потому что другие браузеры до сих пор не поддерживают.
Replies: >>55049, >>55198, >>55350
>>55040
>другие браузеры до сих пор не поддерживают
Миниёпера вообще аудио/видео играть не умеет, выпили плееры нахрен :-> Воспроизведётся — воспроизведётся; нет — можно фолбэком скачать. Лучше с любыми форматами так сделать, потому что macOS Safari даже через HTML5 Audio/Video умеет играть всё, что умеет QuickTime. А ещё лучше фолбэком, если браузер не поддерживает, вставлять медиа через <embed>/<object>, чтобы оно воспроизводилось в браузере NPAPI-плагинами.
Replies: >>55052
>>55049
Костыли-костылики?
Replies: >>55054
>>55052
Где костылики-то?
>>54998
По ходу, этот: >>50494. Странно, что только у меня.
>>54670
А у тебя докачалось-то? Может, у тебя от рекурсии процесс убивается настолько быстро, что и пикнуть не успевает?
Replies: >>55148
>>54995
Я пушнул небольшие изменения. Попробуй синкнуться сейчас.
Заодно это должно чуточку ускорить создание постов в принципе (в т.ч. во время синка).
Если всё заработает, надо будет апнуть версию. А потом начать работу над фильтрами для синка. По треду уже есть, теперь нужен по тегам и по времени добавления поста (чтобы было проще обновляться).
Replies: >>55083
Воу, нека починил пойск! Спасибо, нека!
>>55073
Фильтр на дату чреват неподтягиванием синка через промежуточные сервера. Допустим, есть сервера Эпплджек, Бон-Бон и Черили. На сервере Эпплджек создали пост про яблоки. Через сутки сервер Черили синкнул себе посты с сервера Бон-Бон и сохранил время синка, чтобы в следующий раз тянуть посты после него. Ещё через сутки сервер Бон-Бон синкнул посты с сервера Эпплджек, в том числе пост про яблоки, датированный позавчера. Ещё через сутки сервер Черили синкнул посты с сервера Бон-Бон с фильтром на дату и проебал пост про яблоки, потому что он был раньше даты предыдущего синка.
Кстати, какого хуя settings.py сидит в репозитории? Обновляццо же мешает. Вынеси его в пример, как settings.ini, а лучше объедини с settings.ini, нафиг лишние сущности?
Replies: >>55112
Нуёханыйпиздец, эта борда когда-нибудь успешно докачается? inb4: да.
DEBUG 2017-01-25 03:39:07,252 [boards.sync] Parsed new post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::51756
INFO 2017-01-25 03:39:07,256 [boards.sync] Running GET request...
INFO 2017-01-25 03:39:09,758 [boards.sync] Processing response...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/core/management/base.py", line 393, in run_from_argv
self.execute(*args, **cmd_options)
File "/var/lib/openshift/587bd80d7628e1668b00005a/python/virtenv/venv/lib/python3.3/site-packages/Django-1.8.4-py3.3.egg/django/core/management/base.py", line 444, in execute
output = self.handle(*args, **options)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/management/commands/sync_with_server.py", line 95, in handle
SyncManager.parse_response_get(content, file_url)
File "/var/lib/openshift/587bd80d7628e1668b00005a/app-root/runtime/repo/boards/models/post/sync.py", line 175, in parse_response_get
if STATUS_SUCCESS == tag_status.text:
AttributeError: 'NoneType' object has no attribute 'text'
Причём псто вообще ничем не примечателен.
Replies: >>55098
>>55097
Если чё, я пачками по 10 беру, там проблема может быть из-за любого.
Replies: >>55101
>>55098
Тут вообще походу неверный ответ прилетел.
Replies: >>55104
>>55101
Там произошла ошибка на стороне сервера. Постараюсь разобраться.
Replies: >>55105
>>55104
Это был пост >>51759. Была проблема со случаем, когда в одном посте и файл, а ссылка. Сейчас должно работать.
>>55085
settings.py это джанговский файл, он необходим для работы. И там не так часто что-то обновляется, чтобы устраивать конфликты.
Replies: >>55137
>>55112
Необходим-то необходим, но там кастомные настройки могут быть.
Replies: >>55140
>>55137
Могут, ну и что? Меркуриал вроде не пытается затирать файл, если не было конфликтов при обновлении.
Replies: >>55142
>>55140
Не пытается-то не пытается, но мусор в диффе.
Replies: >>55147
>>55142
А, ты про то что можешь закоммитить не то? Тут согласен. Я над этим подумаю. В крайнем случае переименую в .example
>>55056
Нет, процесс остановился на 40k с небольшим.
Replies: >>55149, >>55151
>>55148
Но с горяча я удалил ту впс, и скоро буду пробовать заново, на PostgreSQL.
Replies: >>55150
>>55149
*сгоряча
>>55148
Ну это оно и есть.
Добавил фильтрацию синка по тегам.
В первый раз с постгресом листинг прошёл практически моментально. Так-то.
Replies: >>55178, >>55187
>>55177
Хотя, не уверен, что это связано с БД.
Replies: >>55180
>>55178
А CPU при синке жрёт немеренно.
Replies: >>55183
>>55180
Напиши неборду на жабе, которая будет уметь в синк. Будет быстрее, инфа 100%.
Replies: >>55188
Терпение и труд всё перетрут. Встречайте, не побоюсь этого слова, первое стороннее зеркало неборды: https://nedoschechko.undo.it/
Киллер-фичи: компактный списко тжредов, нет нинужных жирных селф-хостед-картинок, нет нинужных гейтов в криптосети. Ожидайте тумбнайлер для внешних картинок, и на небороде оный для тытруба пригодится, ибо если картинку больше 24 МБ ещё поискать надо, то с тытрубом сие штатно.
Минусы: хостится у пиндосов на дохлой халявной шестерне и посему тормозит.
Если нека возжелает и количество онанимусов на зеркале перевалит за 0,5, может присинкивать себе. Если, конечно, попорченные лимитом посты ему не продублируются :} Попробуй на тестовой копии с дублем базы продакшна сначала.
И да, с редкими синками получается какое-то Ютуб ФИДО. Надо менее костыльно, в сторону децентрализации двигаться.
Replies: >>55189, >>55212
>>55177
Вестимо, база ж пустая.
>>55183
Шо, нельзя индексов или кэшей напердолить, чтоб оно не жевало по пару постов за секунду? Это ж пиздец, даже для допотопного оракуля, поднятого на первопне, количество операций смехотворное.
Replies: >>55190
>>55186
>попорченные лимитом посты ему не продублируются
Попорченые отсутствием картинок попртятся точно.
>Надо менее костыльно, в сторону децентрализации двигаться.
Например? Любая децентрализация предполагает синк, просто он должен быть чаще. И упрощённый, чтобы не делать лист всего-всего.
Replies: >>55192
>>55188
Индексы есть. Что там у тебя хавает я не знаю, это надо профайлер гонять, а мне влом. Не всё сразу, тут вон каждый день приходится ошибки в синке исправлять.
Replies: >>55193
>>55189
>Например?
Триггером дёргать дружественные сервера. Синк делать только при сбое соединения или даунтайме.
Replies: >>55200
>>55190
>тут вон каждый день приходится ошибки в синке исправлять
Тебя кто-то с пистолетом у виска заставляет? :D Даже не платят за это.
В Firefox, говорят, поддержку FLAC завезли. А бордочка то поддерживает?
Replies: >>55198, >>55868
>>55192
Для этого нужно отдельный сервер, потому что джанга не умеет отдельный поток с очередью событий. А без него отправка поста на все сервера будет тормозить запрос его создания.
Replies: >>55234
>>55186
У тебя сертификат кривой. Или сделай чистый http, или поставь нормальный.
Replies: >>55235
Реквестую логические предикаты по тегам, чтобы можно было прям через ссылку задать желаемый фильтр.
Replies: >>55241
>>55200
А интеграцию с кроном?
Replies: >>55237
>>55212
Нормальный сертификат, просто на этот домен не распространяется.
>>55234
Синкать по крону и сейчас можешь.
Replies: >>55249
>>55233
А на нормальном языке?
Replies: >>55244
root@cs66901:~/neboard# ./manage.py sync_with_server http://neboard.me/ --split-query 10
System check identified some issues:
WARNINGS:
boards.Post.attachments: (fields.W340) null has no effect on ManyToManyField.
boards.Post.referenced_posts: (fields.W340) null has no effect on ManyToManyField.
INFO 2017-01-26 15:14:22,344 [boards.sync] Running LIST request...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/root/neboard/boards/management/commands/sync_with_server.py", line 63, in handle
opening_post=options.get('thread'), tags=options.get('tags').split(',')).encode()
AttributeError: 'NoneType' object has no attribute 'split'
Обновил небордочку, и тут такое. Что делать?
Replies: >>55243
>>55242
Упси. Поправил. Обновись.
>>55241
Умные плейлисты в аудиоплеерах видел? Вот так, только для тегов.
Replies: >>55245, >>55252
>>55244
Не видел. В моём плеере плейлист делается руками.
DEBUG 2017-01-26 15:41:55,068 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::55243
DEBUG 2017-01-26 15:41:55,071 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::55244
INFO 2017-01-26 15:41:55,071 [boards.sync] Starting sync...
INFO 2017-01-26 15:41:55,072 [boards.sync] Running GET request...
INFO 2017-01-26 15:41:55,396 [boards.sync] Processing response...
Killed
Псто >>12932, по моим данным.
Replies: >>55247
>>55246
Что такое killed? Может он уже всё засинкал просто?
Replies: >>55248, >>55255
>>55247
>Может он уже всё засинкал просто?
Нет, отсинкано только чуть больше 11 тысяч постов.
Возможно ли, что это происходит из-за перегрузки процессора?
Replies: >>55250, >>55256
>>55237
Но без диффа. Такими капочками листинг идёт дольше, чем досинк.
Replies: >>55251
>>55248
>Возможно ли, что это происходит из-за перегрузки процессора?
Не должно. Я вообще не очень понимаю, что значит просто killed. Надо дебажить.
>>55249
Дифф по времени уже можно. Скармливаешь ему время создания последнего поста, и он тебе выдаёт все что позже.
>>55244
>Умные плейлисты
Ничё не знаю,
/downloads/sound/house/*2*
?
Так. Чё за хуйня. Я помню, что на неборде можно было код инлайном вставить. [[inline]] не парсится, [
] переносится. Что тогда?
Replies: >>55254
>>55253
>Я помню, что на неборде можно было код инлайном вставить.
Никогда нельзя было, насколько я помню.
Replies: >>55257
>>55247
>Что такое killed?
OOM же пришёл, ну.
Replies: >>55261
>>55248
От перегрузки процессор может только загореться, если это древний амуде.
>>55254
[pre]Говно[/pre].
Нека, пили мракдлядаунов.
>>55255
Ну замерь потребление памяти. Хотя я не думаю, что оно будет большим, учитывая что посты идут по одному.
Replies: >>55262
>>55261
Память замерял, было использовано около 250 мб из 500 доступных, судя по htop.
В общем, я понял, небордочка пока неготова. Попробую ещё раз через полгода.
Replies: >>55264, >>55265
>>55262
>250 мб из 500 доступных
Что-то многовато. Интересно, что там может столько жрать. Это и при гете, и при листе такое?
Replies: >>55266, >>55267
>>55262
>около 250 мб из 500 доступных
for f in /proc/sys/vm/over*; do echo $f; cat $f; done
>>55264
>Интересно, что там может столько жрать
Пердон, конечно.
>>55264
>Это и при гете, и при листе такое?
При листе. При гете проверить не могу, ибо он сразу же обрывается.
Replies: >>55268, >>55278
>>55267
Ой, забыл отключить мускль, без него стало 200 мб.
Replies: >>55269, >>55272
>>55268
Не очень много, учитывая, что память отжирают и прочие процессы.
Replies: >>55270
>>55269
Но на VPS с 256 мб было бы не очень комфортно, не говоря о том, что в случае с OpenVZ хостер бы зобанировал тебя за высокое потребление ресурсов.
>>55268
У тебя ваще-то 104М борда расходует. Смотри на колонку RES.
Replies: >>55279, >>55286
>>55267
Нахуя тебе гномоговно на VPS? Выпили его.
>>55272
Похуй на энурез, оверкоммит смотрит на вирт.
Replies: >>55281, >>55286
>>55279
Ну тогда у тебя мускуль почти 600М сожрал, тебя это не смущает? И ещё 300 постгрес. Только всем похуй. Я не знаю, как питон выделяет виртуальную память и учитывается ли она где-то вообще.
Replies: >>55286
Надо вынести всё что касается синка в отдельное приложение вне boards. Так будет во-первых удобнее, а во-вторых его можно будет полностью отключить.
>>55272
>>55279
>>55281
Не ссорьтесь, ребятки, суть в том, что синк убивается не из-за OOM.
Replies: >>55369
Ради интереса я добавил сообщение об успешном синке. У кого там убивался, попробуйте ещё раз. Интересно, вдруг он таки завершается таким образом.
Replies: >>55290
>>55288
DEBUG 2017-01-26 18:21:17,139 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::55286
DEBUG 2017-01-26 18:21:17,149 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::55287
DEBUG 2017-01-26 18:21:17,154 [boards.sync] Processed (+) post ecdsa::TwKhaOoFWPRSwM4w0CgNVSnaz6OC1Zaa68NohlQDQLXbNN5CDCNTxZfYHMakE299::55288
INFO 2017-01-26 18:21:17,154 [boards.sync] Starting sync...
INFO 2017-01-26 18:21:17,155 [boards.sync] Running GET request...
INFO 2017-01-26 18:21:17,415 [boards.sync] Processing response...
Killed
Нет, всё по-прежнему.
Replies: >>55292, >>55366
>>55290
Тогда не знаю. Если бы проблема была в питоне, он бы выбросил ошибку.
@neko, was ist –global-id?
Replies: >>55332
huj
[code[pizda
>>55328
Айдишник поста. Ты можешь запарсить один конкретный пост, а не всю борду.
Replies: >>55346
>>55332
Ашот'ы там→ про дату📅 говорил? Оно уже есть🍲 или надо фильтры🚭 добавлять🕂?
Replies: >>55353
>>55040
ня
Replies: >>55351
>>55350
Он специально флацк с ревёрбом записал, чтоб свистоперделистее звучало?
>>55346
Есть.
Replies: >>55368
>>55290
Посмотрел в dmesg.
[343965.010971] Out of memory: Kill process 7725 (python3) score 724 or sacrifice child
[343965.012039] Killed process 7725 (python3) total-vm:548960kB, anon-rss:369740kB, file-rss:2572kB
Очень странно. судя по htop, достаточно много памяти свободно.
Replies: >>55369, >>55370
>>55353
А😱 чё☭ я🐗 ключика🔑 не¬ вижу👁?
Replies: >>55380
>>55366
>достаточно много памяти свободно
Ведро может киллять превентивно, судя по скорости жора, чтобы процесс не успел схавать количество, которое повлечёт 12309. И таки покрути оверкоммиты, если есть доступ.
>>55286
Переходи на тариф "Пиздоболище"!
Replies: >>55374
>>55366
В общем, подключил своп, теперь всё нормально.
Replies: >>55375
>>55369
>чтобы процесс не успел схавать количество, которое повлечёт 12309
При чём тут 12309 вообще? Он не имеет никакого отношения к памяти, это баг об операциях с медленными устройствами.
Replies: >>55378
>>55370
На впс можно подключать своп? Они же вроде не поддерживают.
Replies: >>55376
>>55375
Свопфайл подключить можно, это я и сделал.
>>55374
Своп всегда на более медленном, чем рама, устройстве, будь это HDD, SSD или сжатие рамы нагрузкой на процессор.
Replies: >>55379
>>55378
Когда есть свободный своп, OOM не сработает.
Replies: >>55381
>>55368
Родилась очередная ебанутая идея по поводу слогового кодирования эмодзи и создания на их основе идеографического языка по типу китайского. Ждите.
>>55379
В зависимости от настроек оверкоммита может и сработать.
Кицьо, тут небірду до москальських записали! Хутчіш ладнай!
Replies: >>55566
>>55562
И чего? Тут же москальский язык, значит всё верно.
Replies: >>55570, >>55599
>>55566
КИЦЯ ПРОДАВСЯ КЛЯТИМ МОСКАЛЯМ! ПІДПІЛЬНО НАСАДЖУЄШ РУСЬКІЙ МІР?
>INFO 2017-01-27 19:30:29,169 [boards.sync] Sync completed successfully
Ня!
Replies: >>55589
>>55579
Наступили новые проблемы. ВНЕЗАПНО, из джанги выпилили поддержку FastCGI, а поддержку uWSGI в мой любимый вебсервер lighttpd запилили только в версии 1.4-42, при этом в моей стабильной убунточке версия старее! В итоге, чтобы банально развернуть небордочку, мне придётся агрейдить убунту до development-version! Пиздец.
Replies: >>55590, >>55593, >>55595
>>55589
>из джанги выпилили поддержку FastCGI
эээ, когда это?
Replies: >>55591
>>55590
FastCGI support is deprecated and will be removed in Django 1.9.
./manage.py runfcgi ...
Unknown command: 'runfcgi'
Type 'manage.py help' for usage.
https://www.linux.org.ru/forum/web-development/12762064
Replies: >>55592
>>55591
В общем, либо я что-то делаю не так, либо действительно ВСЁ.
>>55589
Вощщем, обновление тот ещё квест, проще собрать lighttpd из сорсов…
>>55589
А зачем тебе lighttpd, в джанге изкоробочного сервера нет?
Replies: >>55596
>>55595
Он же однопоточный. Я же хочу, чтобы тест проходил в боевых продакшн-условиях.
Replies: >>55597
>>55596
>Он же однопоточный
И чё? Жабоскрипт вон в браузерах однопоточный и не жужжит.
Replies: >>55598
>>55597
Один браузер - один клиент. А у сервера клиентов много.
Replies: >>55600
>>55566
Ну вот взять dou.ua. Он москальский? Там тоже в основном на москальском языке, а сидят в основном хохлы.
>>55598
В очередь, сукины дети, в очередь!
Ѯ̞ат̇, уга̻л.
Replies: >>55680, >>55692
>>55678
неймфаг детектид
Replies: >>55721
>>55678
што
Replies: >>55723
>>55680
С ра⫱о̊з͑ӛ.
>>55692
Ч̇тат́ уме̃ш́?
Replies: >>55733
>>55731
Ничего что джанга не обслуживает статики? Ты сам должен хостить /static и /media оттуда, куда ты их замапил. Это сделано для производительности.
Replies: >>55750
Чем закончилась история с плеером?
Replies: >>55749
>>55744
Там баг с позиционированием, я одну ночь пытался воспроизвести, а потом перестали руки доходить до чего-то кроме работы и залипания. Может, на днях ещё потыкаю.
>>55733
Я клинический нуб, но
alias.url = (
"/static" => "/root/neboard/boards/static/",
"/media" => "/root/neboard/media/",
)
Именно это и делает, не?
Replies: >>55756, >>55773
tst
tst