Комментарии 38
Ограничения статической компиляции в любом случае лучше проставить заранее и не столкнуться с ними, чем не проставить и получить NPE в рантайме.
— анализатор не все ситуации может отработать корректно
— разработчик может подавить анализ использовав!
— разработчик библиотеки, которую вы используете не факт, что тоже включил их поддержку и не факт, что всё разметил правильно
В итоге у вас вагон и маленькая тележка способов обратиться по null. Включать фичу в таком мелком проекте имеет смысл только для того, чтобы потренироваться в её использовании, но мы не видим её применения НИ РАЗУ. А заострять на этом внимание в статье, если она не используется, вообще не имеет никакого смысла.
p.s. Я не против конкретно этой фичи, я даже за, но я против того, что автор указывает на фичу без её использования.
Строго запрещаем null на этапе компиляции, чтобы застраховаться от NRE
На этапе описания проекта автор подстраховался, вполне разумная практика по умолчанию, когда еще не знаешь сколько кода будет написано. Не вижу смысла придираться к ограничениям в плане безопасности.
Вы еще скажите что статическая компиляция в маленьких проектах лишняя и надо было сразу писать на JavaScript.
Включать фичу в таком мелком проекте имеет смысл только для того, чтобы потренироваться в её использовании, но мы не видим её применения НИ РАЗУ.
И какого использования NRT вы ожидали? Ошибок компиляции? Смысл ведь как раз в том чтобы изначально не давать программисту писать код использующий null. На мой взгляд не лишнее ограничение свободы.
разработчик может подавить анализ использовав!
Вы всерьез записали это в минусы NRT? Точно также происходит и в остальных языках с декларируемой null-safety (в Kotlin '!!' например). В этом и смысл, что использование null сразу будет заметно в коде.
Делать сложные вещи по возможности просто и лаконично одна из задач работы программиста. Или вы хотели полотнище кода для статьи на хабре?
требуют входа через профиль ВК, что не очень то безопасно
А в чём их небезопасность? Просят вводить логин/пасс? Тогда да, доверять не стоит. А если авторизация через приложение ВК, то что в этом такого?
Как-то не хочется чтобы эти данные собирались
Лучше б в youtube-dl поддержку vk добавили, чем ещё одну утилиту плодить.
Да и C# как язык нравится мне больше Python для реализации своих идей.
Youtube-dl же, вроде, на гитхабе лежит?
А опенсорс — он такой, дикий, пишешь на том, на чём народ угораздило проект создать, а не на том, на чём хочется.
Собственно, этой новостью статья и навеяна, как некий челлендж.
дано: есть группа в вк (или страничка посвященная определеной теме, или открытый аккаунт пользователя), в которой контент добавлялся уже больше 10 лет (т.е. контента много). нужно все что есть скопировать в максимально доступном качестве в удобочитаемом виде. т.е. все записи с коментами, все видео с коментами, все фотоальбомы со всеми фото с коментами, всю музыку с коментами. если нужно, то можно зарегистрировать левый аккаунт. желательно все это сделать через консольную утилиту, которой в качестве входящих параметров подать только ссылку на группу или акаунт который нужно сграбить. ну максимум логин\пароль от толькочто зарегистрированого одноразового аккаунта вк.утилита автоматически должна все сделать сама. в фотоальбомах нужно учесть порядок фото, в музыку и видео добавить дату загрузки и количество просмотров. есть какие идеи чем это можно сделать? youtube-dl к сожалению не умеет с вк работать.
А есть реально рабочие сейчас? все сломались давно.и на новых версиях браузерв и на старых.только приложение "VMP" под анроид спасает
Есть savefrom.net как плагин для браузеров и как веб-сервис, есть ss.youtube.com префикс для скачивания с Ютуба. И без костылей и без авторизации.
2. Ещё бы проставлять исполнителя, альбом и название из ВК по-умолчанию. А то обычно они либо вообще не проставлены, либо проставлены как-то криво при такой загрузке.
3. Ну и на самом деле, скачать всё сразу не особо удобно, я обычно кусками закачиваю с неким периодом. Соответственно, эта конкретная прога без доработок подойдёт скорее для единоразового бэкапа.
П.С. Сам до сих пор продолжаю пользоваться богомерзким сливающим данные SaveFromNet-швайном
Например, API выдаёт такой URL плейлиста, тут данные есть.
Регекспом он конвертится в такой URL MP3, тут уже 404.
Заметил, что если записи размещены на сервере
https://cs***.vkuseraudio.net/*
то программа скачивает, а если на сервере https://psv4.vkuseraudio.net/*
(а таких у меня большинство) — не скачивает.100 лет уже телефон не спрашивал, заходил по паролю, и тут такое.
Я видел несколько проектов по скачиванию с ВК и везде одни и те же костыли. Зачем получать mp3 ссылку, используя старую функцию vkapi (audio.getById), которую в любом момент заблокируют? Regexp, представленный в той статье (и в вашем коде), работает далеко не со всеми треками.
Почему нельзя просто взять и скормить hls ffmpeg'у? Он на выходе даст скаченный mp3… А еще можно вывести получившийся mp3 в — (то есть в stdout) и юзнув stdout redirection получить byte[] с mp3, с которым также можно сделать что угодно (отправить куда-то например)
Сохраняем музыку на C#