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

Перекатить тему
Двадцать первый: >>52337
Ответы: >>55753
>>54220
Нужно, потому что системная регулировка регулирует браузер в целом, а я хочу на разных сайтах разную громкость.
Ответы: >>54244
>>54219
Хочешь скачать борду – поставь лимит не ниже чем у неё. Ну или конкретно для синка разрешить оверрайдить лимит (хотя это будет очень странно, ты видишь на борде файлы по 50 МиБ, но при этом не можешь их же загрузить даже с учётом дедупликации, ибо лимит локальный меньше).
Ответы: >>54247
>>54231
>>54231
README
Apply config changes to boards/config/config.ini.
Ну ёпта, обнови реадми.
Ответы: >>54241, >>54242
>>54239
Оки-доки.
>>54239
Done.
>>54235
>а я хочу на разных сайтах разную громкость
И слушать их одновременно?
Ответы: >>54245
>>54244
Да!
Ответы: >>54248
>>54236
>Хочешь скачать борду
А кусок борды? Для этого, кстати, весьма желательно лить шо список, шо посты начиная с новейших.
>хотя это будет очень странно, ты видишь на борде файлы по 50 МиБ, но при этом не можешь их же загрузить
Чего странного-то?
Ответы: >>54251
>>54245
Тогда надо отдельный режим плеера с регулировкой громкости с точностью до тысячных и шоб на фоне всегда была НЁХ, ибо ты наркоман.
Ответы: >>54252
>>54238
А я сам догадался, default_settings.ini же :P
>>54247
>А кусок борды?
Кусок борды будет, когда будет фильтрация. Сейчас там заглушка, оно не умеет ни просить фильтр, ни отдавать. Мне нужно время и доступ к нормальной IDE (т.е. быть дома), чтобы это написать.
>Чего странного-то?
То что ты не можешь загрузить файл, который уже лежит. Вроде как есть лимит, а вроде как и есть файлы, его нарушающие.
Ответы: >>54262, >>54264
>>54248
Надо чтобы на марочке была только кнопка play/pause, а где-то глобально на странице висел плеер с плейлистами, громкостью и всеми необходимыми настройками.
Ответы: >>54260
>>54252
Как в телеграме?
>>54251
А с чего им не быть, если борда другая? На другой борде другой бамплямат, другая архивация, другие теги обязательные даже могут быть.
Ответы: >>54266
>>54251
IDE не нужны же.
Ответы: >>54265
>>54264
Без неё писать большой кусок кода очень неудобно.
Ответы: >>54269
>>54262
Ну тогда не удивляйся, что у тебя синк падает. Другая борда – другой лимит файлов, ты проиграл.
Ответы: >>54272
>>54265
Обоснуй.
Ответы: >>54271
>>54269
Что тут обосновывать? Если ты пишешь код, который затрагивает разные файлы и разные куски файлов, тебе надо переключаться между ними и чтобы они друг друга видели, и предлагали подсказки. Собственно в этом и заключается задача IDE.
Ответы: >>54273
>>54266
Предлагаешь запретить конвертеры из PDF в TXT?
>>54271
>тебе надо переключаться между ними
Ну переключайся.
>и чтобы они друг друга видели
В перископ видели?
>и предлагали подсказки
Может, пускай код сразу пишут?
>в этом и заключается задача IDE
Задача IDE — компенсировать отсутствие из коробки под руками мощи юниксвея на всяких там виндах для неосиляторов юниксвея. И ещё втюхивать за денюжку кучу прибитых друг к другу гвоздями инструментов, чтоб их не покупали отдельно и не использовали с чужими средствами.
Ответы: >>54275
>>54273
>Задача IDE — компенсировать отсутствие из коробки под руками мощи юниксвея на всяких там виндах для неосиляторов юниксвея.
Не угадал. Задача IDE – связывать все элементы проекта между собой и обеспечить быструю навигацию, подстановку кода и рефакторинг.
Ответы: >>54276
>>54275
>связывать все элементы
Пикрилейтед.
>быструю навигацию
ctags?
>подстановку кода
Ты о чём? Сниппеты, что ли? Проблемы говноязыков, требующих писать кучу шаблонного кода для тривиальных задач.
>рефакторинг
sed, в запущенных случаях ропа.
Ответы: >>54277
>>54276
>ctags?
Возможно умеет, я не пробовал.
>Ты о чём?
О том, что когда ты хочешь написать someObject.someMethod, название someMethod тебе подскажет IDE (как и список аргументов). С питоном это конечно может быть сложнее, еслио объёкт хуй знает откуда достали, но всё же.
>sed
Ну расскажи мне, как sed добавит новый аргумент в метод и подставит значение по умолчанию во все места, где он вызывается. И именно этот метод, а не все с таким же названием у других классов.
Ответы: >>54289
ИДА нинужна когда есть хорошая документация, например.
Ответы: >>54291
>>54277
>название someMethod тебе подскажет IDE (как и список аргументов)
У тебя там WinAPI-like-методы с десятками аргументов?
>еслио объёкт хуй знает откуда достали, но всё же
Он по дефолту хуйзнаетоткуда, ибо классы можно динамически расширять. Это тебе не жаба и не плюсы, в которых классы суть прибитые гвоздями struct с this/self и инкапсуляцией. Надо в реалтайме дампать/дебагать и смотреть.
>И именно этот метод, а не все с таким же названием у других классов
Проблемы всякой дублирующейся хуйни типа get/set и прочих toString. Я не зря сказал про запущенные случаи. При хорошем проектировании имена методов того же порядка уникальности, что и имена классов из разных пакетов. А если вдруг такой дубликат неожиданно закрался, его отловят юнит-тесты. У тебя же есть юнит-тесты?
Ответы: >>54294
>>54281
А если нету, проще написать документацию, а не разработать продукт-костыль. Что только подтверждает, что продукты сии пишутся не из любви к разработчикам и желания им благ.
>>54289
>У тебя там WinAPI-like-методы с десятками аргументов?
А у тебя все методы с одним аргументом, и этот аргумент у всех одинаковый?
>Он по дефолту хуйзнаетоткуда, ибо классы можно динамически расширять.
Можно и расширяют – не одно и то же. Я вот стараюсь подсказки типов использовать, где получается.
>При хорошем проектировании имена методов того же порядка уникальности, что и имена классов из разных пакетов.
Сфигали? У разных классов могут быть одинаковые действия.
>У тебя же есть юнит-тесты?
Есть, но там дааааалеко не всё. Мне лень их писать.
Ответы: >>54297
>>54294
>А у тебя все методы с одним аргументом, и этот аргумент у всех одинаковый?
У меня динамическая типизация и варарги во все поля, 2к17 на дворе, а ты всё порядок аргументов подбираешь, как в винапи. Дохуя аргументов — признак вонючего кода, плохой связности и плохого распределения обязанностей. Так и запишем — IDE нужны говнокодерам, чтобы облегчить написание говнокода. Если метод можно разбить на более мелкие, решающие более узкие задачи, чтобы их можно было трейлить в произвольном порядке и комбинациях, то можно и нужно это делать. А ещё пердон умеет в именованные аргументы.
>Я вот стараюсь подсказки типов использовать, где получается
И плодить сущности? Небось, за полиморфизм ещё топишь?
>У разных классов могут быть одинаковые действия
Если Паша срёт и Маша срёт, то почему затыкание Паше жопы пробкой должно сломать Машу? Маша же тоже от человека наследуется, и жопа у неё там же; будет вместо срать() тоже сратьРтом(). А вот если заставить Машу рожать, то Паше побоку, ибо рожать он всё равно не умеет. Правда, потом появляется какой-нибудь трансгендер, который умудрился получить мужские документы, оставив себе матку, и приходится из-за него пихать в код костыли…
>Мне лень их писать
Ну я ж говорю, что говнокодер. Уже и ругал тебя пару раз в этих тредах за говнокод, и то — смотрел далеко не всё, а только то, что нужно было.
Ответы: >>54307
>>54297
>2к17 на дворе
Это не значит, что синтаксис должен превращаться в кашу.>Дохуя аргументов — признак вонючего кода, плохой связности и плохого распределения обязанностей. Так и запишем — IDE нужны говнокодерам, чтобы облегчить написание говнокода. Если метод можно разбить на более мелкие, решающие более узкие задачи, чтобы их можно было трейлить в произвольном порядке и комбинациях, то можно и нужно это делать.
Сам придумал, сам опроверг, сам навесил ярлык. Молодец.
>И плодить сущности?
Мало прочитать умное слово, нужно ещё понимать, что оно значит.
Ответы: >>54308
>>54307
>Это не значит, что синтаксис должен превращаться в кашу
При чём тут синтаксис? Альзо, каша как раз последовательная куча аргументов, пережиток ассемблера.
>Сам придумал, сам опроверг
Ты каким местом читал?
>умное слово
Какое, полиморфизм?
Ответы: >>54309
>>54308
>При чём тут синтаксис?
Ну это же ты к чему-то начал про переменные аргументы затирать.
>Ты каким местом читал?
Не тем, каким ты писал.
>Какое, полиморфизм?
"плодить сущности". Указание типа – это уже сущность? Ну давайте вообще все ключевые слова выкинем из языка, не будем плодить. Оставим только object.
Ответы: >>54337
>>54309
>Ну это же ты к чему-то начал про переменные аргументы затирать
И что, варарг портит синтаксис?
>Не тем, каким ты писал
Ну этим и не надо, если это не брайльскрипт или если ты не экстрасенс.
>Указание типа – это уже сущность?
А, ты про эти подсказки.
>Оставим только object.
Поздравляю, ты придумал JS Scheme.
О, Нека, ты похож на Дурова, сделай, чтобы при воспроизведении видео время от времени редиректило на страницу входа в админку (ибо других страниц входа тут нету). И просило там номер телефона ввести.
Ответы: >>54366, >>54368
>>54362
Нет, нет. Не так. Треды без комментариев, вот что нужно.
Ответы: >>54378
>>54368
Так комментарии и так недотреды, привязанные к другим тредам. Впрочем, тебе и тред ничто не мешает привязать, как чейнят всякие активные бампляматящиеся треды.
Ответы: >>54398
>>54378
Тебе смешно, а я первую версию неборды задумывал как концепцию "всё есть пост". Но оно как-то сразу не взлетело…
Ответы: >>54404
>всё есть пост
Двухпанельный интерфейс, слева список постов, справа список комментов к нему. Теги вешать на любые посты.
Ответы: >>54405
>>54398
А ты верни, вдруг взлетит.
>>54402
Тише-тише, не надо нам тут плавающих дверей.
Тем временем разработочка продолжается и на арену выходит наш спонсор показа — анимированно-упоротая кнопка! Анимированно-упоротая кнопка станет вашим лучшим другом при посещении неборды и позволит долгими зимними вечерами сидеть и… тыкать в неё! Да-да, вы не ослышались — тыкать в неё! Внимание, при загрузке нескольких аудиофайлов прямо сейчас вы получаете возможность тыкать не одну, не две, а целых ТРИ анимированно-упоротых кнопки! Анимированно-упоротая кнопка — только на неборд точка ме! Посетите также наши зеркала в социальных сетях Тор, Айтупи и Сиджейдиэнэс.
Ответы: >>54412
>станет вашим лучшим другом
я смогу её сжечь?
Ответы: >>54409
>>54408
Специально для тебя как первого покупателя запилю функцию сжигания кнопки!
Ответы: >>54410
>>54409
З. Ы. После сжигания кнопки воспроизведением, разумеется, управлять будет больше нельзя.
Ответы: >>54411
>>54410
То есть, оно станет неуправляемым?
>>54406
А код где?
Ответы: >>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.
ЧЯДНТ?
Ответы: >>54443, >>54466
>>54442
Это что же получается, в одном из постов на неборде содержится декомпрессионная бомба, и из-за защиты сикнуться с небордой нельзя?
Ответы: >>54444, >>54445
>>54443
Что за пост?
Ответы: >>54446
>>54443
Вообще на неборде не должно быть таких постов. Я один находил, но грохнул.
Ответы: >>54659
>>54444
Не знаю.
Ответы: >>54447, >>54448
>>54446
Так поставь туда лог, пусть напишет id
>>54446
Как выяснить номер поста?
Ответы: >>54449
>>54448
File "/root/neboard/boards/models/post/sync.py", line 173, in parse_response_get
Где-нибудь там выведи хоть целиком пост, хоть его id достань из xml.
Ответы: >>54451, >>54452
>>54449
Поподробнее?
>>54449
P.S. Я же не кодер, и в этих вагих джангах не разбираюсь.
Ответы: >>54454
>>54452
Хотя, стоп, кажетсо я понял.
Ответы: >>54459
Шёл 2к17, а нека до сих пор не починил таймауты и грузить на борду файл, который выгружается более полуминуты, бесполезно.
>>54454
По моим данным, это пост >>18905.
Ответы: >>54460, >>54465
>>54459
Нет больше ваших постов. Продолжай синкать.
Ответы: >>54464
>>54460
Такими темпами, которыми листинг делается, я синкать буду неделю, не меньше. Мне кажется, он с каждым разом всё медленнее и медленнее проходит, уже больше часа. И после каждого обрыва проходит заново.
Ответы: >>54466, >>54468, >>54506
>>54459
А чё у меня он отсинкался?
>>54464
У меня листинг занимает 10-15 минут.
>>54442-кун.
Ответы: >>54467
>>54466
Это что-то очень странное. Листинг это просто список, не может он так много занимать.
Ответы: >>54468
>>54467
Синхронизация тоже идёт заметно медленнее, чем в начале. Возможно, проблемы на стороне хостера, но у >>54464 те же проблемы, что странно.
Ответы: >>54469
>>54468
WTF? Либо это говнохостер (что вряд ли, ибо Селектел), либо проблемы на стороне небордочки.
Ответы: >>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 или другое число, чтобы по нескольку постов за раз тянуло.
Ответы: >>54472, >>54473
>>54471
>или среднее по синку вообще?
this
>>54471
>Советую добавить -split-query 10 или другое число, чтобы по нескольку постов за раз тянуло
ОК, пробуем.
Ответы: >>54474, >>54475
>>54473
Листинг.
>>54473
По-прежнему медленно :-(.
Ответы: >>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.
ЧЯДНТ?
Ответы: >>54481
>>54480
Хм, >>25487 — это, судя по всему, первый пост на неборде с webm.
Ответы: >>54482
>>54481
А ты уверен, что валится именно на нём? Я бы скорее предположил, что там попался html-файл, которые новый загрузчик проинструктирован игнорировать. По хорошему, для синка нужно принудительно использовать стандартный загрузчик с игнорированием любых ограничений.
Ответы: >>54483
>>54482
>Я бы скорее предположил, что там попался html-файл, которые новый загрузчик проинструктирован игнорировать
Точно, я немного перепутал циферки, следующий пост — это html-файл.
>По хорошему, для синка нужно принудительно использовать стандартный загрузчик с игнорированием любых ограничений
И как это сделать?
Ответы: >>54484, >>54485
>>54483
>следующий пост — это html-файл
То есть, я хотел сказать, содержит html-файл.
>>54483
>И как это сделать?
Обновиться и попробовать ещё раз. Я запушил фикс.
Ответы: >>54486
>>54485
А я подожду, ещё только на 21066.
Ответы: >>54701
Добавил возможность синкать только заданный тред. Указывается через –thread.
Пока не могу гарантировать, что работать будет идеально, учитывая что между тредами перекрёстные ссылки. Т.е. не гарантирую, что после парса нескольких тредов у вас ссылки между ними разрезолвятся в собственно ссылки и рефлинки.
Ответы: >>54491
>>54490
Также теперь относительно просто добавлять новые фильтры. См. sync_filters.py. Кому надо, можете по аналогии сделать фильтры на теги, например.
>>54464
Насколько я понял из кода, XML как раз качается быстро, это тормозная шестерня часами его потом пережёвывает. Но какого хуя? Что может быть проще полсотни тысяч записей на наличие проверить?
Ответы: >>54508, >>54555
>>54506
Причём там даже запрос к базе один делается! Это какой-то… позор!?
Ответы: >>54509
>>54508
А, не, оно потом теги ищет. Оптимизируй, как-то там, не знаю.
Ответы: >>54510
>>54509
Ничего не знаю, у меня быстро работает. Я конечно ещё посмотрю, что можно сделать, но пока кушайте что дают.
Ответы: >>54513
>>54510
Ну я кушаю, кушаю, к выходным и докушаю. Наверное.
Итакой, наши заботливые китайские мастера предоставить версий альфа Плеер Чудесный Моргать Кликать Philips. Сделать главный возможность убийца моргание кнопка наркотики мультики. Также фиксики проблема счётчик удар исходник в малая панда и хром и фон почтовая марка чешуйка.
Ответы: >>54526, >>54528, >>92994
>>54525
@кот ты выпуск сепаратист ветка соединение игрок или я соединение мой себя?
>>54525
Изменить громкость у меня не получается, по клику ничего не происходит. Анимация play/pause ущербная.
Ответы: >>54554
>>54528
Ня, взял и погасил сервер.
>по клику ничего не происходит
УМВР, только шкала теперь нелогарифмическая. Можно через шебаудиоапи приделать, если у каких-то арбузеров с громкостью медиасорса проблемы.
>Анимация play/pause ущербная
#запилилучше
Ответы: >>54561, >>54562
>>54506
>это тормозная шестерня часами его потом пережёвывает
Всё дело в тормозном пайтоне. Надо был описать борду на Node.js или хотя бы Go.
Ответы: >>54565
>>54554
>Ня, взял и погасил сервер.
Поднял.
Ответы: >>54563
>>54554
>#запилилучше
Нахуя лучше? Там анимация вообще не нужна, тем более кривая.
Ответы: >>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'
ЧЯДНТ?
Ответы: >>54579
>>54578
Номер поста в студию.
Ответы: >>54583
>>54579
Не видишь — 33710.
Ответы: >>54584, >>54585
>>54583
А, точно. Это пошли посты, у которых я случайно удалил картинки когда-то, но кэш старый остался.
>>54583
Пробуй сейчас.
Ответы: >>54597
>>54585
Я-то чего? У меня фетчится потихоньку, >>25224 уже. К слову, поставил split-query, а толку пшик, ибо основное время на пережёвывание постов уходит, а не на запросы.
Ответы: >>54600
>>54597
>ибо основное время на пережёвывание постов уходит
Может быть дело в sqlite? Оно же жутко медленное.
Ответы: >>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.
Ответы: >>54603
>>54601
Пробуй щас.
Ответы: >>54612
>>54603
На данный момент всё нормально (не считая медлительности).
>>54600
Может. Но база ж тоже маленькая.
>>54600
Вряд ли. Отображение тредов ещё может тормозить (особенно больших), но добавляются-то посты при синке по одному. Не думаю, что там тормоза от записи в базу существенные. Хотя я конечно не замерял…
Ответы: >>54642
>>54639
Там же ещё теги проверяются как минимум, не?
Ответы: >>54643
>>54642
Теги, треды, global id.
Ответы: >>54646
>>54643
Во, для каждого треда отдельно. Нельзя, шоле, всё слить и потом из памяти дёргать? Тебя в школе не учили, что СУБД надо дёргать чётко и по делу, а через тупые ORM вещи сложнее КРУДОВ пишут только быдлокодеры? Впрочем, ты и есть быдлокодер.
Ответы: >>54648
>>54646
Крч, плюнул на слитые полбазы и подключил постгрес, листинг пошёл быстрей. Но он со скюлайтом первый раз был быстрый.
Во, уже 11715. Ынджой дат дифренс. Поди, ещё и шестерню душить не будет за высокую нагрузку на ЖД при незапущенном сайте.
>>54445
Пок-пок, цензура на ниборди, ещё и ґеты проёбывают! Сегодня он бомбы выпиливает, завтра за неподдерживаемые браузерами медиаформаты возьмётся, а послезавтра постинг с криптосетей вообще обрубит! Верни влорчан, сучечке!
Ответы: >>54661
>>54659
Щито поделаешь, за архивацию надо платить. Требования и форматы меняются, а старые данные остаются.
Ответы: >>54669
Ответы: >>54663, >>54664
>>54662
Сцуко, 77% ЦПУ, ну что за блдажд хрень.
Ответы: >>54665
>>54662
P.S. Это замер во время листинга.
>>54663
Ну ты уже определись. То у тебя медленно идёт, то проц грузит. Либо ресурсы простаивают и всё медленно, либо они используются на полную и всё быстро.
Ответы: >>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
Ну всё, приехали.
Ответы: >>54671, >>55056
А вот если б я не протупил со скулайтом, небось, ещё первый приехал бы!
>>54670
Ответы: >>54675
>>54671
Вы тут гонки устраиваете?
Ответы: >>54676
>>54675
Не, мы ж не J2ME-версия Viber.
Ответы: >>54678
Ответы: >>54679
>>54678
При чём тут ваззап и зачем ты принёс столько дохуя минут говорящей головы?
Ответы: >>54680
>>54679
Viber, Watzahp, я не разбираюсь в сортах вашей J2ME хрени. Там про того что оно не работает с сертификатами Халмера.
>я не разбираюсь в сортах вашей J2ME хрени
Какой нахуй J2ME, ваззап уже закопали под немейнстрим. Для нокий с предустановленным вроде на полгода отсрочили. На J2ME жив только Jabber, остально либо недоступно, либо через жопу.
>J2ME хрени
Тебе на голову ящик дефисов выслать или почтовым отправлением?
Ответы: >>54685
>>54683
Ты и в деревья не разбираешься. В чём ты вообще разбираешься то, лол.
Ответы: >>54693
>>54685
Какие нахуй деревья?
Ответы: >>54696
>>54693
Каментов.
Ответы: >>54702
>>54486
Со скюлайтом так и не дождался, а сегодня за один день дождался. Найс.
Ответы: >>54735
>>54696
Проебал, рефы похожи на цитаты.
Граждане гитофобы, тут меркуриалофоб нарисовался, помогите пояснить ему за ту хуйню с проёбыванием после мёржа информации о том, чего из какой ветки было. А то попытался вспомнить и нихуя не понял, дерево веток же гит показывает. Может, там про выпиленные ветки было?
Ответы: >>54729
>>54726
В гите принято (не обязательно, но принято как культура), что ты делаешь сколько угодно личных коммитов по мере работы, а потом перед пушем всё это объединяешь в один коммит, и историю стираешь.
Ответы: >>54734
>>54729
Не, то не про сквош было. Шо сквош ССЗБ, то понятно
>>54701
Обновился, вмёржил свой фикс, а оно то же самое кидает. Шо за хуйня? Ты это специально?
Ответы: >>54737, >>54738
>>54735
Тьфу ты, перетёр аргумент при мёрже, ибо не на тот коммит смотрел, и не заметил :P
>>54735
Найс, зделол, чтоб у меня через жопу было. Там валидация нужна, там не нужна, а ключик-то универсальный! Щяс похуй, потом наюзаешь метод ещё где и форк по пизде пойдёт. Ты хуже гугеля.
Ответы: >>54739
>>54738
шта
Ответы: >>54740
>>54739
Шта, шта, ты прикрутил аргумент для выключения валидации и теперь при выключении валидации не проверяются размеры. А ещё хыэмэльтэ. На хыэмэльтэ похуй, не нужно, а на размер нужно, ибо не влезет, если выползет за лимит. В итоге пришлось ещё и download пропатчить, чтоб там аргумент юзало, а там нет. Пока валидация только при синке отключается — похуй, а потом ещё чего прикрутишь — и придётся пердолить новые костыли. Из Pale Moon так вон уже выкинули кучу всего, потому что заебались бэкпортировать.
Ответы: >>54743
>>54740
Это не костыль. В одних случаях валидация нужна, в других не нужна. Вот и всего.
Ответы: >>54745
>>54743
Но логика ентого не остаётся внутри функции.
Ответы: >>54748
>>54745
Нихуя не понял.
Ответы: >>54752
>>54748
Хули тут неясно. С одним параметром на все точки валидации функция не знает, когда какой набор точек валидации нужен. Или есть полностью, или ваще отрубается.
Ответы: >>54753
>>54752
Какой набор? Или валидация нужна, или не нужна. При синке она не нужна.
Ответы: >>54756
>>54753
А мне нужна, ибо лимит и перфекционистские неизменяемостепроблемы идут лесом.
Ответы: >>54757
>>54756
Что-то не вижу твоего пуллреквеста.
Ответы: >>54759
>>54757
Ты ж его отклонил, ибо не нужно.
Ответы: >>54760
>>54759
Я отклонил другое. Ты предлагал заменять аттач ссылкой, что недопустимо, ибо нарушает целостность синхронизируемого поста.
Ответы: >>54761
>>54760
А ты хошь, чтоб я тебе дикт флагов для валидации напилил? :3
MakE 299 GrEaT AgAiN!
Ответы: >>54856, >>54956
>>54853
>299
2333
>>54853
Что такое 299?
Ответы: >>54973
Если нопейсать в settings.py 'mysql', то ничего не работает, с 'django.db.backends.mysql' же всё работает. Это фича?
Ответы: >>54958
>>54957
В комменте написано:
# Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'
Нека, исправляй.
Ответы: >>54959
>>54958
Это коммент джанги, а не мой. Я могу в ридми добавить ссылку на джанговскую документацию, тебя устроит?
Ответы: >>54960
>>54959
Тебе решать, я лишь зарепортил НЕОЧЕВИДНОСТЬ.
Алсо, django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'uid' used in key specification without a key length"). Что делать?
Ответы: >>54961
>>54960
Хехе, оказывается mysql не умеет индексировать текстовые поля.
Убрал индекс и запушил, обновляйся.
Ответы: >>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")
Ответы: >>54964
>>54963
А вот тут мы наверное проиграли. Даже если в более поздних миграциях есть удаление индекса, в ранних осталось его добавление. Даже не знаю как тут быть, учитывая что миграции на сервере уже применены и редактировать их нельзя.
Ответы: >>54965, >>54966
>>54964
Могу предложить руками поковырять их, удалить 16-ю миграцию и поставить 17-й зависимость от 15-й. Но я не знаю, как тогда отработает последняя (удаление индекса, которого ты не создал). Её тогда тоже придётся удалить, но у тебя будут проблемы при обновлениях.
Ответы: >>54974
>>54964
Правильно ли я понимаю, что на свежей инсталляции неборды проблемы не будет?
Ответы: >>54967
>>54966
На mysql будет. Свежая инсталляция – это накатывание всех миграций по очереди, а проблема в 16-й.
Ответы: >>54968
>>54967
Т.е. можно сказать, что небордочка не поддерживает MySQL/MariaDB?
:-(
Ответы: >>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
Чё его зациклило? Место вроде ещё есть.
Ответы: >>54998, >>55071
>>54995
Хы, интересно. Это какой-то пределённый пост?
Ответы: >>55055
>>54422
Завезли наконец. Когда выйдет, можно будет попробовать включить.
// На самом деле нет, потому что другие браузеры до сих пор не поддерживают.
Ответы: >>55049, >>55198, >>55350
>>55040
>другие браузеры до сих пор не поддерживают
Миниёпера вообще аудио/видео играть не умеет, выпили плееры нахрен :-> Воспроизведётся — воспроизведётся; нет — можно фолбэком скачать. Лучше с любыми форматами так сделать, потому что macOS Safari даже через HTML5 Audio/Video умеет играть всё, что умеет QuickTime. А ещё лучше фолбэком, если браузер не поддерживает, вставлять медиа через <embed>/<object>, чтобы оно воспроизводилось в браузере NPAPI-плагинами.
Ответы: >>55052
>>55049
Костыли-костылики?
Ответы: >>55054
>>55052
Где костылики-то?
>>54998
По ходу, этот: >>50494. Странно, что только у меня.
>>54670
А у тебя докачалось-то? Может, у тебя от рекурсии процесс убивается настолько быстро, что и пикнуть не успевает?
Ответы: >>55148
>>54995
Я пушнул небольшие изменения. Попробуй синкнуться сейчас.
Заодно это должно чуточку ускорить создание постов в принципе (в т.ч. во время синка).
Если всё заработает, надо будет апнуть версию. А потом начать работу над фильтрами для синка. По треду уже есть, теперь нужен по тегам и по времени добавления поста (чтобы было проще обновляться).
Ответы: >>55083
Воу, нека починил пойск! Спасибо, нека!
>>55073
Фильтр на дату чреват неподтягиванием синка через промежуточные сервера. Допустим, есть сервера Эпплджек, Бон-Бон и Черили. На сервере Эпплджек создали пост про яблоки. Через сутки сервер Черили синкнул себе посты с сервера Бон-Бон и сохранил время синка, чтобы в следующий раз тянуть посты после него. Ещё через сутки сервер Бон-Бон синкнул посты с сервера Эпплджек, в том числе пост про яблоки, датированный позавчера. Ещё через сутки сервер Черили синкнул посты с сервера Бон-Бон с фильтром на дату и проебал пост про яблоки, потому что он был раньше даты предыдущего синка.
Кстати, какого хуя settings.py сидит в репозитории? Обновляццо же мешает. Вынеси его в пример, как settings.ini, а лучше объедини с settings.ini, нафиг лишние сущности?
Ответы: >>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'
Причём псто вообще ничем не примечателен.
Ответы: >>55098
>>55097
Если чё, я пачками по 10 беру, там проблема может быть из-за любого.
Ответы: >>55101
>>55098
Тут вообще походу неверный ответ прилетел.
Ответы: >>55104
>>55101
Там произошла ошибка на стороне сервера. Постараюсь разобраться.
Ответы: >>55105
>>55104
Это был пост >>51759. Была проблема со случаем, когда в одном посте и файл, а ссылка. Сейчас должно работать.
>>55085
settings.py это джанговский файл, он необходим для работы. И там не так часто что-то обновляется, чтобы устраивать конфликты.
Ответы: >>55137
>>55112
Необходим-то необходим, но там кастомные настройки могут быть.
Ответы: >>55140
>>55137
Могут, ну и что? Меркуриал вроде не пытается затирать файл, если не было конфликтов при обновлении.
Ответы: >>55142
>>55140
Не пытается-то не пытается, но мусор в диффе.
Ответы: >>55147
>>55142
А, ты про то что можешь закоммитить не то? Тут согласен. Я над этим подумаю. В крайнем случае переименую в .example
>>55056
Нет, процесс остановился на 40k с небольшим.
Ответы: >>55149, >>55151
>>55148
Но с горяча я удалил ту впс, и скоро буду пробовать заново, на PostgreSQL.
Ответы: >>55150
>>55149
*сгоряча
>>55148
Ну это оно и есть.
Добавил фильтрацию синка по тегам.
В первый раз с постгресом листинг прошёл практически моментально. Так-то.
Ответы: >>55178, >>55187
>>55177
Хотя, не уверен, что это связано с БД.
Ответы: >>55180
>>55178
А CPU при синке жрёт немеренно.
Ответы: >>55183
>>55180
Напиши неборду на жабе, которая будет уметь в синк. Будет быстрее, инфа 100%.
Ответы: >>55188
Терпение и труд всё перетрут. Встречайте, не побоюсь этого слова, первое стороннее зеркало неборды: https://nedoschechko.undo.it/
Киллер-фичи: компактный списко тжредов, нет нинужных жирных селф-хостед-картинок, нет нинужных гейтов в криптосети. Ожидайте тумбнайлер для внешних картинок, и на небороде оный для тытруба пригодится, ибо если картинку больше 24 МБ ещё поискать надо, то с тытрубом сие штатно.
Минусы: хостится у пиндосов на дохлой халявной шестерне и посему тормозит.
Если нека возжелает и количество онанимусов на зеркале перевалит за 0,5, может присинкивать себе. Если, конечно, попорченные лимитом посты ему не продублируются :} Попробуй на тестовой копии с дублем базы продакшна сначала.
И да, с редкими синками получается какое-то Ютуб ФИДО. Надо менее костыльно, в сторону децентрализации двигаться.
Ответы: >>55189, >>55212
>>55177
Вестимо, база ж пустая.
>>55183
Шо, нельзя индексов или кэшей напердолить, чтоб оно не жевало по пару постов за секунду? Это ж пиздец, даже для допотопного оракуля, поднятого на первопне, количество операций смехотворное.
Ответы: >>55190
>>55186
>попорченные лимитом посты ему не продублируются
Попорченые отсутствием картинок попртятся точно.
>Надо менее костыльно, в сторону децентрализации двигаться.
Например? Любая децентрализация предполагает синк, просто он должен быть чаще. И упрощённый, чтобы не делать лист всего-всего.
Ответы: >>55192
>>55188
Индексы есть. Что там у тебя хавает я не знаю, это надо профайлер гонять, а мне влом. Не всё сразу, тут вон каждый день приходится ошибки в синке исправлять.
Ответы: >>55193
>>55189
>Например?
Триггером дёргать дружественные сервера. Синк делать только при сбое соединения или даунтайме.
Ответы: >>55200
>>55190
>тут вон каждый день приходится ошибки в синке исправлять
Тебя кто-то с пистолетом у виска заставляет? :D Даже не платят за это.
В Firefox, говорят, поддержку FLAC завезли. А бордочка то поддерживает?
Ответы: >>55198, >>55868
>>55192
Для этого нужно отдельный сервер, потому что джанга не умеет отдельный поток с очередью событий. А без него отправка поста на все сервера будет тормозить запрос его создания.
Ответы: >>55234
>>55186
У тебя сертификат кривой. Или сделай чистый http, или поставь нормальный.
Ответы: >>55235
Реквестую логические предикаты по тегам, чтобы можно было прям через ссылку задать желаемый фильтр.
Ответы: >>55241
>>55200
А интеграцию с кроном?
Ответы: >>55237
>>55212
Нормальный сертификат, просто на этот домен не распространяется.
>>55234
Синкать по крону и сейчас можешь.
Ответы: >>55249
>>55233
А на нормальном языке?
Ответы: >>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'
Обновил небордочку, и тут такое. Что делать?
Ответы: >>55243
>>55242
Упси. Поправил. Обновись.
>>55241
Умные плейлисты в аудиоплеерах видел? Вот так, только для тегов.
Ответы: >>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, по моим данным.
Ответы: >>55247
>>55246
Что такое killed? Может он уже всё засинкал просто?
Ответы: >>55248, >>55255
>>55247
>Может он уже всё засинкал просто?
Нет, отсинкано только чуть больше 11 тысяч постов.
Возможно ли, что это происходит из-за перегрузки процессора?
Ответы: >>55250, >>55256
>>55237
Но без диффа. Такими капочками листинг идёт дольше, чем досинк.
Ответы: >>55251
>>55248
>Возможно ли, что это происходит из-за перегрузки процессора?
Не должно. Я вообще не очень понимаю, что значит просто killed. Надо дебажить.
>>55249
Дифф по времени уже можно. Скармливаешь ему время создания последнего поста, и он тебе выдаёт все что позже.
>>55244
>Умные плейлисты
Ничё не знаю,
/downloads/sound/house/*2*
?
Так. Чё за хуйня. Я помню, что на неборде можно было код инлайном вставить. [[inline]] не парсится, [
] переносится. Что тогда?
Ответы: >>55254
>>55253
>Я помню, что на неборде можно было код инлайном вставить.
Никогда нельзя было, насколько я помню.
Ответы: >>55257
>>55247
>Что такое killed?
OOM же пришёл, ну.
Ответы: >>55261
>>55248
От перегрузки процессор может только загореться, если это древний амуде.
>>55254
[pre]Говно[/pre].
Нека, пили мракдлядаунов.
>>55255
Ну замерь потребление памяти. Хотя я не думаю, что оно будет большим, учитывая что посты идут по одному.
Ответы: >>55262
>>55261
Память замерял, было использовано около 250 мб из 500 доступных, судя по htop.
В общем, я понял, небордочка пока неготова. Попробую ещё раз через полгода.
Ответы: >>55264, >>55265
>>55262
>250 мб из 500 доступных
Что-то многовато. Интересно, что там может столько жрать. Это и при гете, и при листе такое?
Ответы: >>55266, >>55267
>>55262
>около 250 мб из 500 доступных
for f in /proc/sys/vm/over*; do echo $f; cat $f; done
>>55264
>Интересно, что там может столько жрать
Пердон, конечно.
>>55264
>Это и при гете, и при листе такое?
При листе. При гете проверить не могу, ибо он сразу же обрывается.
Ответы: >>55268, >>55278
>>55267
Ой, забыл отключить мускль, без него стало 200 мб.
Ответы: >>55269, >>55272
>>55268
Не очень много, учитывая, что память отжирают и прочие процессы.
Ответы: >>55270
>>55269
Но на VPS с 256 мб было бы не очень комфортно, не говоря о том, что в случае с OpenVZ хостер бы зобанировал тебя за высокое потребление ресурсов.
>>55268
У тебя ваще-то 104М борда расходует. Смотри на колонку RES.
Ответы: >>55279, >>55286
>>55267
Нахуя тебе гномоговно на VPS? Выпили его.
>>55272
Похуй на энурез, оверкоммит смотрит на вирт.
Ответы: >>55281, >>55286
>>55279
Ну тогда у тебя мускуль почти 600М сожрал, тебя это не смущает? И ещё 300 постгрес. Только всем похуй. Я не знаю, как питон выделяет виртуальную память и учитывается ли она где-то вообще.
Ответы: >>55286
Надо вынести всё что касается синка в отдельное приложение вне boards. Так будет во-первых удобнее, а во-вторых его можно будет полностью отключить.
>>55272
>>55279
>>55281
Не ссорьтесь, ребятки, суть в том, что синк убивается не из-за OOM.
Ответы: >>55369
Ради интереса я добавил сообщение об успешном синке. У кого там убивался, попробуйте ещё раз. Интересно, вдруг он таки завершается таким образом.
Ответы: >>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
Нет, всё по-прежнему.
Ответы: >>55292, >>55366
>>55290
Тогда не знаю. Если бы проблема была в питоне, он бы выбросил ошибку.
@neko, was ist –global-id?
Ответы: >>55332
huj
[code[pizda
>>55328
Айдишник поста. Ты можешь запарсить один конкретный пост, а не всю борду.
Ответы: >>55346
>>55332
Ашот'ы там→ про дату📅 говорил? Оно уже есть🍲 или надо фильтры🚭 добавлять🕂?
Ответы: >>55353, >>82133
Ответы: >>55351
>>55350
Он специально флацк с ревёрбом записал, чтоб свистоперделистее звучало?
>>55346
Есть.
Ответы: >>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, достаточно много памяти свободно.
Ответы: >>55369, >>55370
>>55353
А😱 чё☭ я🐗 ключика🔑 не¬ вижу👁?
Ответы: >>55380
>>55366
>достаточно много памяти свободно
Ведро может киллять превентивно, судя по скорости жора, чтобы процесс не успел схавать количество, которое повлечёт 12309. И таки покрути оверкоммиты, если есть доступ.
>>55286
Переходи на тариф "Пиздоболище"!
Ответы: >>55374
>>55366
В общем, подключил своп, теперь всё нормально.
Ответы: >>55375
>>55369
>чтобы процесс не успел схавать количество, которое повлечёт 12309
При чём тут 12309 вообще? Он не имеет никакого отношения к памяти, это баг об операциях с медленными устройствами.
Ответы: >>55378
>>55370
На впс можно подключать своп? Они же вроде не поддерживают.
Ответы: >>55376
>>55375
Свопфайл подключить можно, это я и сделал.
>>55374
Своп всегда на более медленном, чем рама, устройстве, будь это HDD, SSD или сжатие рамы нагрузкой на процессор.
Ответы: >>55379
>>55378
Когда есть свободный своп, OOM не сработает.
Ответы: >>55381
>>55368
Родилась очередная ебанутая идея по поводу слогового кодирования эмодзи и создания на их основе идеографического языка по типу китайского. Ждите.
>>55379
В зависимости от настроек оверкоммита может и сработать.
Кицьо, тут небірду до москальських записали! Хутчіш ладнай!
Ответы: >>55566
>>55562
И чего? Тут же москальский язык, значит всё верно.
Ответы: >>55570, >>55599
>>55566
КИЦЯ ПРОДАВСЯ КЛЯТИМ МОСКАЛЯМ! ПІДПІЛЬНО НАСАДЖУЄШ РУСЬКІЙ МІР?
>INFO 2017-01-27 19:30:29,169 [boards.sync] Sync completed successfully
Ня!
Ответы: >>55589
>>55579
Наступили новые проблемы. ВНЕЗАПНО, из джанги выпилили поддержку FastCGI, а поддержку uWSGI в мой любимый вебсервер lighttpd запилили только в версии 1.4-42, при этом в моей стабильной убунточке версия старее! В итоге, чтобы банально развернуть небордочку, мне придётся агрейдить убунту до development-version! Пиздец.
Ответы: >>55590, >>55593, >>55595
>>55589
>из джанги выпилили поддержку FastCGI
эээ, когда это?
Ответы: >>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
Ответы: >>55592
>>55591
В общем, либо я что-то делаю не так, либо действительно ВСЁ.
>>55589
Вощщем, обновление тот ещё квест, проще собрать lighttpd из сорсов…
>>55589
А зачем тебе lighttpd, в джанге изкоробочного сервера нет?
Ответы: >>55596
>>55595
Он же однопоточный. Я же хочу, чтобы тест проходил в боевых продакшн-условиях.
Ответы: >>55597
>>55596
>Он же однопоточный
И чё? Жабоскрипт вон в браузерах однопоточный и не жужжит.
Ответы: >>55598
>>55597
Один браузер - один клиент. А у сервера клиентов много.
Ответы: >>55600
>>55566
Ну вот взять dou.ua. Он москальский? Там тоже в основном на москальском языке, а сидят в основном хохлы.
>>55598
В очередь, сукины дети, в очередь!
Ѯ̞ат̇, уга̻л.
Ответы: >>55680, >>55692
>>55678
неймфаг детектид
Ответы: >>55721
>>55678
што
Ответы: >>55723
>>55680
С ра⫱о̊з͑ӛ.
>>55692
Ч̇тат́ уме̃ш́?
Ответы: >>55733
>>55731
Ничего что джанга не обслуживает статики? Ты сам должен хостить /static и /media оттуда, куда ты их замапил. Это сделано для производительности.
Ответы: >>55750
Чем закончилась история с плеером?
Ответы: >>55749
>>55744
Там баг с позиционированием, я одну ночь пытался воспроизвести, а потом перестали руки доходить до чего-то кроме работы и залипания. Может, на днях ещё потыкаю.
>>55733
Я клинический нуб, но
alias.url = (
"/static" => "/root/neboard/boards/static/",
"/media" => "/root/neboard/media/",
)
Именно это и делает, не?
Ответы: >>55756, >>55773
tst
tst