• ↓
  • ↑
  • ⇑
 
Записи с темой: diy (список заголовков)
02:13 

Как я список учеников составлял

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

Спустя еще минут 15 программа была готова, вот код.



Программа сработала идеально, дубликатов было около 200. Я доволен, как слон. Однако вдруг промелькнула мысль о том, что все это наверняка можно было сделать штатными средствами прямо в экселе. Погуглил, и первая же ссылка подтвердила мои подозрения. Я уж не стал гуглить, можно ли штатными средствами убирать циферки из строк - уверен, что можно.

В итоге: минуту назад я был крутым парнем, который быстро решил проблему, а теперь я просто заново изобрел велосипед.

@темы: программирование, epic fail, радость, DIY

18:31 

Как я музыку выкачивал

Недавно из-за нелепой случайности потерял всю инфу на телефоне, благо там почти не было ничего важного. Однако меня больше интересовала музыка, ибо последний раз я делал резервную копию больше года назад. Учитывая, что уже давно я загружаю музыку в телефон, минуя компьютер, накопилось довольно большое количество треков, которых не было на компьютере. Таким образом передо мной стояла задача скачать около 70 аудиозаписей.
Существуют расширения для браузера, позволяющие сделать то, что мне нужно, однако у них имеются минусы:
  • с помощью VKopt можно загружать аудиозаписи с нормальными названиями, но только по одной
  • SaveFrom.net позволяет загрузить сразу ВСЕ свои аудиозаписи

Как вы понимаете, ни один из этих вариантов меня не устраивал, поэтому пришлось копать дальше. Я заметил, что VKopt позволяет получить список ссылок на все аудиозаписи. После небольшого редактирования в списке остались только нужные мне треки. Я уже хотел было обрадоваться, но не тут-то было. Все действительно скачивалось, однако названия файлов были такие, что понять, какая это песня не представлялось возможным. Ну вот как понять, что за таинственным "bf026609003c19" скрывается чудесное "Небо в алмазах"? Меня несколько озадачил тот факт, что поодиночке файлы сохранялись с нормальными названиями, а при попытке массовой загрузки названия файлов выглядели несколько удручающе. Я решил рассмотреть ссылки на файлы поподробнее:

Мое внимание привлекла вот эта часть ссылки Rise%20Against%20-%20Hero%20Of%20War. Выходит, что ссылка уже хранит нормальное название, надо только найти способ извлечь его оттуда.

План начинал вырисовываться:
  1. Выудить названия файлов из ссылок
  2. Привести их в нормальный вид (если кто не заметил - пробелы были заменены на %20)
  3. Составить список названий таким образом, чтобы каждой ссылке поставить в соответствие нужное название
  4. Воспользоваться утилитой wget для загрузки аудиозаписей

План идеален, осталось только реализовать. И вот тут я столкнулся с некоторыми трудностями. Чтобы зациклить wget и выкачать файлы, логично было бы написать скрипт, но работать со строкой в bash сильно неудобно. Со строкой удобно работать, например, в java. По идее, я мог бы написать всю программу на java, но я понятия не имею, как оттуда запустить wget с нужными мне параметрами. Поэтому мною было принято решение: список имен получу с помощью программы на java, а файлы загружу с помощью bash-скрипта.

Java-часть: тут
Bash-часть: тут

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

@темы: программирование, DIY

Ушастые заметки

главная