|
|
|
|
Железный канал: «Клуб программистов.» |
|
|
|
Grebomet
1502 EGP
      Рейтинг канала: 8(786) Репутация: 263 Сообщения: 4822 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| za4ot : |
|
Т. е. они не самостоятельные графические библиотеки и им всё равно нужен WinAPI для работы? Или самостоятельные?
|
На винде, естественно, высокоуровневые графические библиотеки все равно используют WinAPI (а иногда и OpenGL/DirectX). На линуксе - X Server и его расширения.
| za4ot : |
|
А как этим миром попытаться управлять из какого-нибудь ЯП? Обязательно нужен игровой 2D, 3D движок или можно как-то по другому?
|
Ну как... Открываешь туториал по опенджиэлю и вперел, на мины и наддолбы.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
|
AnrDaemon
874 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12358
Зарегистрирован: 17.10.2004
 |
|
| za4ot : |
Очень часто в книжках встречается ситуация когда два предложения не разделены пробелом. Править вручную это очень долго. Вчера попытался написать замену на Perl для своего редактора опечаток. Следуя логике, нужно было добавить пробел после любой точки за которой идет любой символ кроме пробельного. Для этого написал так:
| Код: |
$string =~ s{\.(\S)}{\. $1}g;
# Любая точка после которой идет не пробельный символ заменяется на точку и тот же символ разделенные пробелом. |
Но я не учел, что у нас .fb2 и в конце каждого абзаца перед точкой стоит символ "<". Так что эта замена и туда впихнула пробел. Можно было, конечно, следом применить замену убирающую пробел перед "<", но это ж сколько лишних телодвижений. Пробовал писать по разному. Ничего не помогало.
| Код: |
$string =~ s{\.([^<][\S])}{\. $1}g;
$string =~ s{\.([<{0,0}\S])}{\. $1}g;
$string =~ s{\.(<{0,0}\S)}{\. $1}g;
$string =~ s{\.([[^<][\S]])}{\. $1}g;
# и это даже не все варианты
|
В итоге просто попробовал исключить из класса символ "<" и посмотреть, что из этого выйдет.
| Код: |
$string =~ s{\.([^<])}{\. $1}g;
|
И это сработало. Теперь замена добавляет пробел между предложениями только там где его нет, и не добавляет его перед символом "<".
Вот такую полезную штуку я узнал самостоятельно. Класс содержащий все буквенно-цифровые символы кроме одного, исключая пробельные, описывается классом, в котором исключен именно этот один символ. Т. е. [^символ который нужно исключить]. Как по мне для редактирования .fb2 это архиполезная фича.
|
Есть такие вещи, как lookahead/lookbehind.
То, что ты сделал, добавило пробелы, например, в троеточиях. Не все авторы заморачиваются правильной типографикой, к моему сожалению…
Правильный ответ должен быть примерно таким:
| Код: |
| $string =~ s{\.(?![.\s]|</)}{\. }g; |
Любую точку, за которой не следует точка, пробел или закрывающий тег, заменить на точку с пробелом. Хотя (!), даже если у тебя перед закрывающим тегом появится пробел, это, обычно, нестрашно.
А проблемы начнутся, если у тебя книжка по программированию и точка - это часть кода.
добавлено спустя 6 минут:
| Grebomet : |
|
Для С++ лучше Qt - там все просто и гораздо меньше всякого магического бойлерплейта придется писать.
|
Qt для десктопа не могу советовать. У неё есть несколько проблем, за 30 лет так и не решённых, сколько их ни репортили.
добавлено спустя 2 минуты:
| za4ot : |
|
А как этим миром попытаться управлять из какого-нибудь ЯП?
|
Скомпилируй любую интерактивную демку по любой графической библиотеке.
Я в своё время игрался с DXScene.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (15:37 16-12-2025), всего редактировалось 3 раз(а) |
|
|
|
Grebomet
1502 EGP
      Рейтинг канала: 8(786) Репутация: 263 Сообщения: 4822 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| AnrDaemon : |
|
Qt для десктопа не могу советовать. У неё есть несколько проблем, за 30 лет так и не решённых, сколько их ни репортили.
|
Да ладно, для того, чтобы по-быстрому накидать прототипчик - самое то.
А что там за проблемы?
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
|
AnrDaemon
874 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12358
Зарегистрирован: 17.10.2004
 |
|
| Grebomet : |
|
А что там за проблемы?
|
Из того, что в очередной раз всплыло за последние пару месяцев - неправильно обрабатывается иконка в трее. Неправильно реагирует на клики и не убирается при закрытии приложения. Под эксплорером это незаметно, а вот если трей рендерится голым winapi, косяк во весь рост.
Скейлинг и HiDPI вроде починили, но только для новых версий.
_________________ Люблю свободный полёт... :) |
|
|
|
Grebomet
1502 EGP
      Рейтинг канала: 8(786) Репутация: 263 Сообщения: 4822 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| AnrDaemon : |
|
Из того, что в очередной раз всплыло за последние пару месяцев - неправильно обрабатывается иконка в трее. Неправильно реагирует на клики и не убирается при закрытии приложения.
|
Хз, щас потыкал в иконку какой-то своей поделки - вроде все нормально... Хотя я не помню, какие там клики обрабатываются и как, лень смотреть.
А не, глянул - на любой активейшен просто окно показывается. Контекстное меню таки да, не вылезает.
Да и хер с ним - кому прям критично, через shell nofify icon сделает. Там коду 15 строчек.
| AnrDaemon : |
|
Скейлинг и HiDPI вроде починили, но только для новых версий.
|
Ну да, у меня в 6-й версии все диалоги растарабанило в полтора раза...
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
Последний раз редактировалось: Grebomet (17:04 20-12-2025), всего редактировалось 1 раз |
|
|
|
za4ot
613 EGP
     Рейтинг канала: 5(146) Репутация: 19 Сообщения: 3764 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
Сегодня скачивал 336 роликов с ютуба через браузер. Возник вопрос насколько сложно научиться написать программу, которая будет закачивать ролики с ютуба в лучшем качестве без вот этих всяких ограничений как в онлайн сервисах? Где-то читал что продвинутые программисты просто запрос могут какой-то отправить на сервер ютуба и получить прямую ссылку на видео.
_________________ Пираты - наше всё! |
|
|
|
iiiIIIiiIIiIiiII
518 EGP
   Рейтинг канала: 1(1) Репутация: 12 Сообщения: 405 Откуда: Планета номер 13 в Тентуре Зарегистрирован: 25.05.2020
 |
|
Поставь yt-dlp и напиши в гугле "Сделай мне скрипт который с помощью yt-dlp скачает в лучшем качестве все видео из файла, который я дам в качестве аргумента скрипта".
_________________ И вздохнёт бог. Посмотрит всё прощающими глазами. И скажет мне, дурак ты, Василий. А ежели ты дурак, то какая тебе разница, дурак ты или же — Дурак. |
|
|
|
za4ot
613 EGP
     Рейтинг канала: 5(146) Репутация: 19 Сообщения: 3764 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| iiiIIIiiIIiIiiII : |
|
Поставь yt-dlp
|
Вчера поставил и написал в гугле и нифига оно не работает. Я имел в виду не готовое решение, а запросы на каком-нибудь ЯП для этого предназначенном. В какую сторону копать вообще? Пёрл вроде как для сетевых программ вполне должен подходить, я так думаю, но я могу и ошибаться.
_________________ Пираты - наше всё! |
|
|
|
Grebomet
1502 EGP
      Рейтинг канала: 8(786) Репутация: 263 Сообщения: 4822 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| za4ot : |
|
Где-то читал что продвинутые программисты просто запрос могут какой-то отправить на сервер ютуба и получить прямую ссылку на видео.
|
Нет там прямых ссылок, это стриминговый сервис. Ролик скачивается кусками (возможно, с разных серверов) и показывается по мере выкачивания. К тому же на стороне сервера тоже не дурачки сидят - им невыгодно, чтобы любой ясноокий юноша мог легко и просто выкачать видеоролик, минуя рекламу. Поэтому там много что проверяется, чтобы не отдавать видео сторонним приложениям.
Это не значит, что систему невозможно обмануть, но сделать это будет непросто.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
|
za4ot
613 EGP
     Рейтинг канала: 5(146) Репутация: 19 Сообщения: 3764 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| Grebomet : |
|
Это не значит, что систему невозможно обмануть, но сделать это будет непросто.
|
Видя обилие онлайн сервисов по выкачке видео не сильно верится, что там какие-то запредельные сложности, которые нельзя было бы преодолеть если знать что и где нужно выучить и примерный алгоритм действий.
_________________ Пираты - наше всё! |
|
|
|
iiiIIIiiIIiIiiII
518 EGP
   Рейтинг канала: 1(1) Репутация: 12 Сообщения: 405 Откуда: Планета номер 13 в Тентуре Зарегистрирован: 25.05.2020
 |
|
| za4ot : |
|
Видя обилие онлайн сервисов по выкачке видео
|
Они все юзают yt-dlp.
_________________ И вздохнёт бог. Посмотрит всё прощающими глазами. И скажет мне, дурак ты, Василий. А ежели ты дурак, то какая тебе разница, дурак ты или же — Дурак. |
|
|
|
AlexYar
2018 EGP
               Рейтинг канала: 3(49) Репутация: 323 Сообщения: 33850
Зарегистрирован: 26.10.2003
 |
|
| za4ot : |
|
Видя обилие онлайн сервисов по выкачке видео
|
И сколько из них реально работают? Почти все сбоят периодически и выдают ошибки, либо качают качество хуже, чем ты указываешь, и не могут качать видео длительностью более часа.
|
|
|
|
Grebomet
1502 EGP
      Рейтинг канала: 8(786) Репутация: 263 Сообщения: 4822 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| za4ot : |
|
которые нельзя было бы преодолеть если знать что и где нужно выучить и примерный алгоритм действий
|
Примерный алгоритм действий такой: открывает ютуп, открываем в браузере инструменты разработчика, тычем в любой ролик - и смотрим, что происходит. Тебе и запросы покажет, и ответы, и всяческие заголовки, и скрипты. При желании можно натыкать брякпойнтов и смотреть, как что работает.
Ну а потом с этими знаниями дело за малым - написать свою приблуду, которая делает то же самое, только вместо показа видео его сохраняет.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
|
|
|
|
|
|
Железный канал: «Клуб программистов.» |
|
|