Рипер для плейбеков

  • Автор темы Автор темы Chehov
  • Дата начала Дата начала
Aleksandr Oleynik написал(а):
!_Concert List with Preset v22

С перемещением регионов "до запуска скрипта", теперь все работает отлично, а вот после запуска скрипт не понимает.
То есть: Запустили мы скрипт, затем в процессе подвинули куда то регион или поменяли местами регионы, а регионы разные по длине(по времени), то если регион
сдвинулся в право то воспроизведение начнется от начала региона и закончиться не в конце региона как должно быть,а в том месте, где изначально был конец региона до перемещения, а если регион сдвинулся в лево то воспроизведение остановится и больше не включится, включится только в том месте , где был регион до перемещения, а если мы передвинем куда то далеко регионы, то курсор будет скакать по тем местам, где изначально был конец региона.

На счет региона пустышки, он добавляется чуть дальше последнего региона, не обращая внимания на айтемы, а должен наверное я думаю за пределами последнего(дальнего) айтема в проекте.

Ну и осталось что то придумать с пустыми регионами, если пустой(без имени) то как то обзывать наверно его, ну и с пресетами что то.

Ну и по визуальной части:
Когда мы жмякаем по названию региона (в скрипте), если жмякнем по центру, то вроде все норм, а вот если куда то в угол, то уж сильно далеко перемещается имя региона, текст перемещается к мыши, а надо бы задать какие то одни не большие параметры, а если мы вышли за пределы прямоугольника с нажатой ЛКМ то имя должно потянутся, как сейчас и есть.
К шрифтам можно добавить шрифты на задний план со смещением другова цвета (теней и объема добавить )
Бегущую полосу плэя можно сделать, что бы она принимала цвет региона или айтема, айтемов может быть много в регионе, лучше наверно региона
Подсветочку кнопок, регионов при наведении мыши

Вроде все: больше пока не чего не заметил
 
  • Like
Реакции: Aleksandr Oleynik
А я вот тоже не пойму что за задача такая двигать регионы или менять их местами? Это от нечего делать?
 
Не праздный вопрос: опишите цель, для чего двигать регионы в проекте?
А я вот тоже не пойму что за задача такая двигать регионы или менять их местами? Это от нечего делать?
Всякие ситуации могут быть при работе!
И подвести эти ситуации могут Очень серьёзно.
Я всего лишь описываю эти недочеты, которые заметил при тесте.
Мне этот скрипт все равно не пригодится.
Если хотите пользоваться костылями? Пожалуйста!

Вот из-за таких как вы и существует куча программ, с кучей багов.
Сделали тяп-ляп, работает, да и ладно. А как работает? наплевать!
 
Последнее редактирование:
  • Like
Реакции: Alx_g
@Archchie, Спокойней реагируйте на замечания по поводу ваших замечаний :).
Спасибо, что тестите и пишите свои замечаеия!
Смысл данного скрипта - составить плэй лист (плэй листы) из ГОТОВОГО списка композиций.
Проект с таким списком (регионами), после того как скрипт запущен, менять нельзя. Не представляю зачем бы это было нужно, но, КСТАТИ, могу вовсе запретить скриптом что либо в проекте, пока скрипт запущен, менять - от шаловливых ручек, от случайно задетого.... подумаю.
Определённая логика в вами намисанном есть!, но она касается изменерий проекта после сохранения Пресетов. Вот тут траблы могут быть, можно тупо забыть, что э
менять проект нельзя.... и порушить все Пресеты.
Понятно, что сделать защиту пресетов можно только - сканируя их все при запуске скрипта на предмет соответствия проекту... ну и если обнаруживается не соответствие - править. Вот только что считать "не соответствием", а что сломанным нафиг проектом?
Если пользователь какому то Региону поменяет Имя, начало и конец и порядковый номер - ни один Кашпировский не разберётся, Пресет прийдётся удалять!
 
  • Like
Реакции: Archie's
@patt, @andy felon,
Дело в том, что @Archchie почти всё пишет правильно! Грамотный бэта тестер не менее важная персона, чем програмист!
Грамотно написанная программа не должна ломаться ни от каких действий Пользователя или должна запрещать (блокировать) их.
Но, скрипт не всесильный, не от всех не обдуманных действий Пользователя можно защититься...., но от тех что можно, обязательно нужно.
[DOUBLEPOST=1534787687][/DOUBLEPOST]@Archchie заблокировать изменения в проекте при запущенном скрипте я смогу. Делал уже подобное в своих скриптах....
А вот что делать если Проект после сохранения Пресетов поменяли - пока не знаю.
Есть идеи?
PS: Регионы без имени в скрипте работают нормально. Увидит пользователь, что они пустые - назовёт если захочет, а не захочет - скрипт работает и с ними, он не по имени работает.
Могу при старте скрипта конечно предупредить, что обнаруженны Регионы без имени - назовиие их как нибудь...
PSS: про регион пустышку - верное замечание, спасибо.
 
Последнее редактирование:
  • Like
Реакции: Archie's
@Aleksandr Oleynik, Саша ни кто не говорит про неграмотность программы, но из за многих не реальных ситуаций приходится очень сильно и многое усложнять что порой само собой ведет к меньшей надежности.

@Archchie, эээ нее как раз изза того что от чего то требуют гораздо большее чем нужно. Я лично не представляю зачем делать те вещи которые вы описали. Нужен стабильный скрипт, а чем больше мы вводим условий различный тем более которыми пользоваться не будем тем он менее стабильным становится.
 
чем больше мы вводим условий различный тем более которыми пользоваться не будем тем он менее стабильным становится
Во всех программах на земле львиную долю кода составляют УСЛОВИЯ :)
И чем полнее их представляет Програмист при написании и чем меньше оставляет не учтённых им ситуаций на волю судьбы и Пользователя - тем менее глючной становится программа!
 
А вот что делать если Проект после сохранения Пресетов поменяли - пока не знаю.
Есть идеи?

С пресетами я думаю надо сделать вот такое поведение(Если сможете конечно),
только наверное придется переписать пол скрипта.

1. Запустили мы скрипт, он просканировал проект, как сейчас и есть,
далее сохраняем пресет, пресет запомнил все регионы и все плюсики в скрипте(пресет 111)

2. Запускаем мы скрипт в другом проекте, далее все то же самое
сохраняем пресет, пресет запомнил все регионы и так же плюсики (пресет 222)

Вот у нас есть уже два пресета, запускаем мы скрипт в третьем проекте,
он отсканировал все как и положено, но если мы выбирим пресет 111 или 222, то
все существующие в данный момент регионы удаляются и создаются те которые были
сохранены в пресете, ну и активируются соответственно плюсики, не смотря есть там
айтемы(песни) или нет.
Вот это как мне кажется более правильное поведение пресетов
[DOUBLEPOST=1534793076][/DOUBLEPOST]
Не праздный вопрос: опишите цель, для чего двигать регионы в проекте?
А я вот тоже не пойму что за задача такая двигать регионы или менять их местами? Это от нечего делать?
эээ нее как раз изза того что от чего то требуют гораздо большее чем нужно. Я лично не представляю зачем делать те вещи которые вы описали. Нужен стабильный скрипт, а чем больше мы вводим условий различный тем более которыми пользоваться не будем тем он менее стабильным становится.

Первое что пришло в голову: Но ситуаций может быть море.
Вы играете концерт, у вас составлен плэй лист, но по каким то, не предвиденным ситуациям не знаю(проплатили, запретили и т.д. и т.п) вам нужно заменить или добавить композицию, воспроизведения конечно вам останавливать нельзя.
Если заменить композицию, если длина(время) композиции совпадают, то все норм, а если не совпадает, то все приплыли. Так же с ситуацией, если добавить композицию, вы добавили, сделали регион, а он не обнаруживается, потому что вам надо перезапустить скрипт.

Это сравнимо с вот такой глупой ситуацией:
Вы сидите дома или не дома, слушаете музыку через винамп,
вам захотелось закинуть какой либо новый трек(и), вы берете,закидываете в плэй лист винампа, а винамп их не принимает, а говорит вам, меня надо выключить, и включить иначе я их не увижу.
Это нормально?
Я понимаю, что вы хотите как можно быстрее готовый скрипт, вот по этому куча скриптов и с багами, но если доводить этот скрипт до ума, я думаю он еще не месяц и не два будет делаться
 
Последнее редактирование:
@Archchie, смотрите я вижу так вот сколько в проекте песен столько и регионов, вот у меня чуть больше 30 и регионы созданы на все, что бы сынрать нужно только выбрать, а добавлять и убавлять быстро не получится.
 
а добавлять и убавлять быстро не получится.
Ну предлагайте свои варианты (потому что тут тупик), а @Aleksandr Oleynik, будет смотреть что в его силах, и что лучше работает
[DOUBLEPOST=1534795237][/DOUBLEPOST]
заблокировать изменения в проекте при запущенном скрипте я смогу. Делал уже подобное в своих скриптах....
Ну в принципе можно и так.

PS: Регионы без имени в скрипте работают нормально. Увидит пользователь, что они пустые - назовёт если захочет, а не захочет - скрипт работает и с ними, он не по имени работает.
Ну если не по имени и если с пустыми работает, то и называть их не надо.
У меня в "v.22" с пустыми не работает, скрипт ломается
 
Последнее редактирование:
@Archchie, нет имеется ввиду что бы добавить трек в проект гемора много, это аудио и миди файлы плюс запись автоматизаций мидийных, так что на все треки есть регионы
 
  • Like
Реакции: patt
Так, пока исправил не возможность удаления Пресета с кирилическим именем!
В этот раз перезаписать нужно будет не основной скрипт, а модуль Preset.lua в папке !_ConcertList/Modules/
Теперь и удаляется и переименовывается.
 

Вложения

Последнее редактирование:
С пресетами я думаю надо сделать вот такое поведение(Если сможете конечно),
только наверное придется переписать пол скрипта.
1. Запустили мы скрипт, он просканировал проект, как сейчас и есть,
далее сохраняем пресет, пресет запомнил все регионы и все плюсики в скрипте(пресет 111)
2. Запускаем мы скрипт в другом проекте, далее все то же самое
сохраняем пресет, пресет запомнил все регионы и так же плюсики (пресет 222)
Вот у нас есть уже два пресета, запускаем мы скрипт в третьем проекте,
он отсканировал все как и положено, но если мы выбирим пресет 111 или 222, то
все существующие в данный момент регионы удаляются и создаются те которые были
сохранены в пресете, ну и активируются соответственно плюсики, не смотря есть там
айтемы(песни) или нет.
Вот это как мне кажется более правильное поведение пресетов
Неееееееее! Так делать НЕЛЬЗЯ! :)
Вам Автор Проекта с Композициями, которые делались для концертной программы днём и ночью, голову оторвёт за такое поведение скрипта... :)
НИ ЧЕГО Скрипт удалять из проекта НЕ ИМЕЕТ ПРАВА! Это полностью исключено.
Он вообще с проектом НИ ЧЕГО НЕ ДЕЛАЕТ - он из него берёт список и как угодно его виртуально тасует - ВСЁ!!!!!
Я сделаю также как и для своего Лайв Проекта - Скрипт будет сохранять Пресеты для каждого Проекта в своей отдельной подпапке с именем проекта.
Ну и естественно будет загружать ТОЛЬКО Пресеты сохранённые для данного Проекта.
Это первое.

Второе - я запрещу Пользователю что либо менять в Проекте, когда скрипт запущен.
В Проекте, который используется для конкретной Концертной программы, должны присутствовать АБСОЛЮТНО все Композиции (Регионы) которые только могут (на Бис или случайно) понадобиться.
Добавить или убрать или переместить по очереди любую Композицию Проекта мой скрипт может легко во время Концерта, даже при Плее. При этом он естествеен не трогает ни как сам Проект!
А если ЧП, то закрывается ЭТОТ Проект, открывается другой - и вызывается другой Пресет или по быстрому создаётся!

Третье - что делать с Пресетами проекта, который Пользовател изменил после сохранения этих Пресетов - ПОКА НЕ ЗНАЮ! Для меня это самый сложный вопрос, так как сценариев может быть много.
[DOUBLEPOST=1534800052][/DOUBLEPOST]
У меня в "v.22" с пустыми не работает, скрипт ломается
Посмотрю ещё внимательнее.
Могу заставить Пользователя их назвать при запуске скрипта.
[DOUBLEPOST=1534800329][/DOUBLEPOST]
Это сравнимо с вот такой глупой ситуацией:
Вы сидите дома или не дома, слушаете музыку через винамп,
вам захотелось закинуть какой либо новый трек(и), вы берете,закидываете в плэй лист винампа, а винамп их не принимает, а говорит вам, меня надо выключить, и включить иначе я их не увижу.
Это нормально?
Не нормально и мой скрипт так не работает - ни чего не нужно перегружать - закидывайте что угодно в Трэк лист прям при плее концерта - БЕЗ ПРОБЛЕМ!
Вот только вы не понимаете, что для Концертного Плэй Листа Архив Композиций это ТО, что лежит в Проекте и больше он НИ ЧЕГО о существовании чего либо другого и знать не должен.
Как только вы поймёте, что перечень композиций которые можно сыграть на Концерте - это ТО, что вы закинули в Проект - всё встанет на свои места.
Если Композиции в Проекте НЕТ, то её на 99,9% вообще нет, её создавать нужно, а это НЕ ВОЗМОЖНО сделать во время Концерта.
Ну это так-же как для Винампа списком композиций, которые вы в него можете закинуть, является список файлов на вашем компе (если он в инет не подключен и флэшку в него вставить нельзя) - если файла на компе нет, вы его в винамп и не закинете.
 
Последнее редактирование:
Третье - что делать с Пресетами проекта, который Пользовател изменил после сохранения этих Пресетов - ПОКА НЕ ЗНАЮ! Для меня это самый сложный вопрос, так как сценариев может быть много.
Пока решил так -
Ни чего не делать, не открывать пресеты и сообщать Пользователю, что он «балбес».
Я сделаю так, чтобы в пресет писалась информация о проекте в котором Пресет делался, важная для нормальной работы Пресета инфа - имя проекта, кол-во регионов, их наименование, их стартовые и конечные точки ( может придумаю какую то контрольную сумму по этим параметрам) - и при вызове Пресета буду сравнивать с текущим проектом - совпадает - открываем, не совпадает - в сад.
 
Первое что пришло в голову: Но ситуаций может быть море.
Вы играете концерт, у вас составлен плэй лист, но по каким то, не предвиденным ситуациям не знаю(проплатили, запретили и т.д. и т.п) вам нужно заменить или добавить композицию, воспроизведения конечно вам останавливать нельзя.
Ну так этот скрипт позволяет это сделать "на лету". Зачем регионы двигать?

Если заменить композицию, если длина(время) композиции совпадают, то все норм, а если не совпадает, то все приплыли.
Вот тут разъясните: что значит время совпадает? Все песни плюс-минус пол минуты, ну минута максимум... Это не критично для любого выступления, мне кажется.

Так же с ситуацией, если добавить композицию, вы добавили, сделали регион
Не понял. У меня все композиции уже в проекте. Я их никуда не добавляю. Я только в плейлист добавляю регион (заранее созданный) с композицией. Никуда физически его (регион) не перемещая.
Опишите, плз, ваш алгоритм работы.

Я понимаю, что вы хотите как можно быстрее готовый скрипт
Нее, я просто хочу работающий скрипт, могу и потерпеть.

и сообщать Пользователю, что он «балбес».
Да, этого будет достаточно.
 
@patt, я думаю, что я сумел уже @Archchie всё пояснить....
Если принять как Аксиому, что Пресет будет работать ТОЛЬКО если проект после его создания НИ КАК не был изменён, все вопросы @Archchie отпадают!
 
  • Like
Реакции: patt
@patt, он не работает с плэйбэками, на сколько я понял - он просто знает скрипты и потестил работу моего.
 
  • Like
Реакции: patt
@Aleksandr Oleynik, Не было времени прочитать внимательно последние 2 страницы. Может это обсуждалось уже?
Баг такой: если первым в плейлисте идет последний (по маркерам) трек, то после него воспроизведение останавливается, хотя скобки все стоят.
Скрипт в.22, тест проводил на проекте из 4 коротких (10-15 с.) треков, все действия производил "одной рукой".
 
Последнее редактирование:
Та могу, но ни как не соберусь это всё настроить.
Atom, в котором скрипты пишу, кстати, github на прямую поддерживает..
 
Последнее редактирование:
Баг такой: если первым в плейлисте идет последний (по маркерам) трек, то после него воспроизведение останавливается, хотя скобки все стоят.
Скрипт в.22, тест проводил на проекте из 4 коротких (10-15 с.) треков, все действия производил "одной рукой".
Валера, последний видимо Регион (не трек) - и он не может быть последним по маркерам, последним всегда будет создаваемый скриптом Empty Регион и он НЕ ПОКАЗЫВАЕТСЯ в Скрипте, так что выбрать его вообще не возможно, и даже если эдит (плэй) курсор ручками на него переместить - Play нажать будет не возможно!
В общем у меня нет описанного тобой бага. Или анимашку кинь или проек с описанием действий. Хотя бы скриешот на котором бы было видно GUI скрипта и Регионы с именами.
 
@Aleksandr Oleynik,

Или анимашку кинь
Понял, попозжее закину. Последний, имеется в виду тот, который есть у меня. Т.е. : у меня их (треков) всего 4 в тестовом проекте. Когда я в плейлисте ставлю 4-й первым в списке воспроизведения, то независимо от дальнейшего порядка, воспроизведение останавливается после него. Ну, в общем к вечеру постараюсь анимашку сделать.
 
При старте скрипта у тебя после последнего региона регион с именем Empty создаётся?
Ты скобку напротив своего последнего региона ставиш?
 
Неееееееее! Так делать НЕЛЬЗЯ!
Вам Автор Проекта с Композициями, которые делались для концертной программы днём и ночью, голову оторвёт за такое поведение скрипта...
НИ ЧЕГО Скрипт удалять из проекта НЕ ИМЕЕТ ПРАВА! Это полностью исключено.
Ну если делать такое поведения пресетов, то соответственно при запуске скрипта должен создаваться пресет "default" с сохранением текущих положений регионов и если выбран другой пресет при работе, то при закрытии скрипта должно появляться окно с предупреждением (reaper.MB(ок,отмена)) о том, что будут утеряны первоначальные настройки.
Естественно при закрытии скрипта пресет "default" удаляется.
—Я конечно же понимаю что это сложно, но все таки: я считаю что это самое правильное поведение пресета и сразу же решает проблему с изменениями в проекте после сохранения пресета

Aleksandr Oleynik написал(а):
Скрипт будет сохранять Пресеты для каждого Проекта в своей отдельной подпапке с именем проекта.Ну и естественно будет загружать ТОЛЬКО Пресеты сохранённые для данного Проекта.
Решать конечно же вам, но я считаю что это не правильно, и смысла от таких пресетов нет, потому что они одноразовые.
А если вы открыли какой нибудь бэкап этого проекта ? То все пресеты потеряны! Проект то этот же, а имя то другое у проекта.

Aleksandr Oleynik написал(а):
Как только вы поймёте, что перечень композиций которые можно сыграть на Концерте - это ТО, что вы закинули в Проект - всё встанет на свои места.
Я всё это понимаю! Но это же всё не дочеты и можно расширить функционал.
Пример я уже приводил, на концерте (вам заплатили или еще что-то), вам надо добавить композицию, но её нету в проекте, вам только что дали флешку с ней, вы закинули трек в проект, создали регион, а дальше надо все перезапустить.
— Я конечно же не настаиваю этого делать, просто высказываю свое мнения.

Aleksandr Oleynik написал(а):
Ну это так-же как для Винампа списком композиций, которые вы в него можете закинуть, является список файлов на вашем компе (если он в инет не подключен и флэшку в него вставить нельзя) - если файла на компе нет, вы его в винамп и не закинете.
Вот тут я с вами не согласен на 100/500%! Причем тут комп?
Есть программа "винамп", в ней есть плэй-лист, вы с компа кидаете трек в плэй-лист и "винамп" уже находит трек автоматом, который появился в плэй-листе.
Так же с рипером:
Есть программа "рипер", в ней есть ваш плэй-лист.
Повторюсь.При чем тут комп? в этом сравнении две одинаковых составляющие, это "программа" и "плэй-лист", а с компа мы закидываем и туда и туда.


Aleksandr Oleynik написал(а):
Я сделаю так, чтобы в пресет писалась информация о проекте в котором Пресет делался, важная для нормальной работы Пресета инфа - имя проекта, кол-во регионов, их наименование, их стартовые и конечные точки ( может придумаю какую то контрольную сумму по этим параметрам) - и при вызове Пресета буду сравнивать с текущим проектом - совпадает - открываем, не совпадает - в сад.
Так нужны ли вообще тогда пресеты, может вообще их тогда убрать? Какой смысл от них.
Вы запустили бэкап или двинули регион или добавили композицию с регионом в спешке перед концертом или еще чего и все пресеты сломались-потерялись

Ну так этот скрипт позволяет это сделать "на лету". Зачем регионы двигать?
Объясните как? С учетом что нового трека нет в проекте или он не подготовлен.

Вот тут разъясните: что значит время совпадает?
Вам, как выше уже сказано, по каким то причинам надо заменить трек, "нового трека в проекте нет", вы удаляете трек, который был в проекте, пускай он был 129 тактов, соответственно регион у нас 129 тактов в длину, далее мы берем и закидываем новый трек на это же место, но новый трек у нас 105 или 160 тактов, соответственно нам надо удлинить или уменьшить регион, но если мы это сделаем, то все сломается.

Не понял. У меня все композиции уже в проекте. Я их никуда не добавляю. Я только в плейлист добавляю регион (заранее созданный) с композицией
Опишите, плз, ваш алгоритм работы.
Я описываю не повседневные задачи, а те, которые могут возникнуть по не предвиденным ситуациям, выше уже все описано. Может таких ситуаций у вас не когда и не возникнет, а у кого то бывает, смотря кто где работает, выступает.

Aleksandr Oleynik написал(а):
@patt, я думаю, что я сумел уже @Archchie всё пояснить....
Я все изначально понимал, просто хотел помочь в развитии, указав на недочеты, которые могут когда - либо случится.

patt написал(а):
Я просто хотел логику его работы понять.
Дело не в логике моей работы, а в логике работы самого скрипта!
Я просто пытаюсь предугадать возникшие ситуации у людей и донести их до разработчика!
Скриптом могут пользоваться сотни, а то и тысячи пользователей, у которых могут быть разные ситуации.
А вы высказываетесь только исходя из своей ситуации.
Это как: Вы работаете в рипере по концертам, так давайте рипер полностью заточим под вас, а пользователей которые пишут музыку в рипере пошлем лесом. Нельзя думать только о себе!!!

-------------------------------------------------------------------------------------------------------------------
PS. О всем выше сказанном, не в коем случае не настаиваю, а просто высказываю своё мнения.
Да и как я понял Aleksandr Oleynik и сам уже не хочет заниматься этим скриптом
Все, я закончил с советами.
-------------------------------------------------------------------------------------------------------------------
 
Последнее редактирование:
@Archchie, саша хочет сделать скрипт для лайвов это основная задача, а кто там что пишет в рипере это не сюда.
 
@Archchie, Не возможно сделать Скрипт, который поймёт Любое надругательство над проектом, после сохранения Пресета Трэк Листа.
Если вы мне напишите хотя бы теоретическое (Логическое) решение следующей проблемы, я задумаюсь над универсальным скриптом -

Мы имеем проект с 40 Композициями (Регионами) и на базе этого Проекта сделали Трэк Лист на предстоящий Концерт в составе которого 20 из них.
Кто-то, после того как мы закрыли скрипт с сохранённым Трэк Листом, взял и -
- переименовал все наши 20 Регионов из которых мы составили Плэй лист,
- поменял им точки начала, конца и длину.
А теперь расскажите - ЧТО нужно мне сделать ТАКОЕ в скрипте, чтоб ЭТО предотваратить или чтоб при запуске скрипта с этим изменённым проектом реанимировать его или пересобрать Пресет?

Вот тут я с вами не согласен на 100/500%! Причем тут комп?
Есть программа "винамп", в ней есть плэй-лист, вы с компа кидаете трек в плэй-лист и "винамп" уже находит трек автоматом, который появился в плэй-листе.
Так же с рипером:
Есть программа "рипер", в ней есть ваш плэй-лист.
Повторюсь.При чем тут комп? в этом сравнении две одинаковых составляющие, это "программа" и "плэй-лист", а с компа мы закидываем и туда и туда.
А теперь пример с винампом -
что будет с вашим трэк листом, если я все композиции, которые вы в винамп забросили, перемещу на другой диск и переименую?
[DOUBLEPOST=1534873495][/DOUBLEPOST]
Да и как я понял Aleksandr Oleynik и сам уже не хочет заниматься этим скриптом
С чего вы это решили?
И чем же я в этой ветке занимаюсь уже до версии v22?
 
  • Like
Реакции: Archie's

Сейчас просматривают