Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5
Разархивиране на RAR архиви в python
#1
Ако сте се опитвали да разархивирате RAR архиви в python сигурно знаете каква мъка е да се направи, още повече - работещо платформено независимо решение.

Алтернативен вариант е да се използва официалния unrar на Alexander Roshal, но трябва той да се разпространява заедно с конкретния Kodi addon и оттам следват множество други проблеми, като лиценз за употреба и разпространение, стартиране на отделен файл според операционната система и т.н. Нещо подобно, би свършило работа:

Код:
import subprocess
subprocess.Popen(['/usr/bin/unrar', 'x', /path/to/archivename, /path/to/destinationdirectory])
При мен обаче не работи Sad

Щом локално не става, може да го направим online тогава. Използвайки например някоя онлайн услуга за разархивиране на файлове и изтегляйки разархивираното съдържание:
Код:
curl 'http://funzip.net/Home/Upload' -H 'Host: funzip.net' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0' -H 'Accept: */*' -H 'Accept-Language: bg,en;q=0.5' --compressed -H 'Referer: http://funzip.net/' -H 'X-Requested-With: XMLHttpRequest' -H 'Content-Type: multipart/form-data; boundary=---------------------------12931226381816525941197219339' -H 'DNT: 1' -H 'Connection: keep-alive' --data-binary $'-----------------------------12931226381816525941197219339\r\n\r\nContent-Disposition: form-data; name="file"; filename="subtitle.rar"\r\nContent-Type: application/vnd.rar\r\n\r\n-----------------------------12931226381816525941197219339--\r\n'

[{"downloadUrl":"/Home/DownloadFile?file=FmUuJdrZTRPVp%2BNIr%2FGpVw%3D%3D\u0026index=0","index":0,"filename":"CarlSagans-COSMOS-part-01-TheShoresOfTheCosmicOcean.kolibka.com.srt","filesize":58610,"isDirectory":false}]

http://funzip.net/Home/DownloadFile?file=FmUuJdrZTRPVp%2BNIr%2FGpVw%3D%3D&index=0
...и тук идва следващия проблем - този сайт изисква ъплоудване на архива, който искаме да бъде разархивиран. Според вас заслужава ли си усилията първо архива да се свали локално, след това да се ъплоудне в сайта, а накрая да се изтегли резултата?
[Изображение: notrobosmall.jpg]
Отговори
#2
Не е нужно, така си е добре добавката  Cool
Отговори
#3
(05-02-2017, 16:36)xbmcbg написа: Не е нужно, така си е добре добавката  Cool
Без субтитри е добре казваш? Ами хората, които не знаят чужди езици какво да правят? Ако измислим някакво работещо решение от него могат да се възползват всички наши добавки, разчитащи на изтегляне на компресирани субтитри. В момента има поддръжка само на ZIP архиви, ама по българските сайтове тачат повече RAR формат.
[Изображение: notrobosmall.jpg]
Отговори
#4
Ако е възможно когато го правиш предвиди и възможност те да се изключват, не смятам че съм единственият който не използва субтитри за основните световни езици. Можеш да им добавиш и машинен аудио четец за да заприлича на Нова ТВ, където всички филми се озвучават от една шепа хора и гласът на Гибс примерно в последствие озвучава престъпник. Голям фън  Cool
Отговори
#5
Никога не съм го обичал този RAR, затворен, платен, всеки път нова версия, старите не отварят новите ... шитня.
А любимото ми е държавни учреждения да ми пращат текстов файл 20К при допустим размер 20-30-40МБ на електронна поща.... архивирани с пиратстван WinRAR.
Отговори
#6
Благодаря за информацията
Отговори
#7
В крайна сметка, идеята ми за онлайн разархиватора се оказа прекалено нестабилна - един път работи, друг път не. Затова се спрях на стандартното за python решение, все пак добавките за Коди се пишат именно на този език. Трябва в операционната система да се инсталира питонската библиотека rarfile, както и unrar. След това е лесно:
Код:
import rarfile
archive = rarfile.RarFile("archive.rar")
archive.extract("/home/itsme/")
[Изображение: notrobosmall.jpg]
Отговори
#8
Information 
Информация за поддръжката на RAR в Kodi:

В момента, инсталационните файлове/пакети за актуалните версии на Коди се компилират без флаг "nonfree". Включването на флага "nonfree" разрешава rar поддръжката на системно ниво в Коди (и всъщност, това е единственото което прави). С издаването на Коди v18 Лея, флагът вече няма да е наличен, а ще бъде осъществен преход към нова категория бинарни плъгини: VFS (между които и VFS.rar)

? Ще може ли както преди да се плейват компресирани в RAR видео файлове ?
-Да

? А ще има ли поддръжка на multipart архиви (на части) ?
-Да

? Ще могат ли да се зареждат компресирани в RAR субтитри ?
-Може би/TBD. Също така поддръжка на на-новия RAR5 няма да има, поне не и в началото!

? След като излезе Kodi v18 Лея, ще може ли да махнете зависимостта от rarfile.py и unrar от plugin.video.kolibka и service.subtitles.bukvibg ?
-За Kodi v18 Лея и следващи версии ще може, но всички междинни версии между Kodi v15 и v17 ще останат "на сухо" т.е. за тях като единствен вариант остава да използвате варианта с тези външни библиотеки, описан като настройки в съответните форумни теми. Вижте и отговора на предходния въпрос!
[Изображение: notrobosmall.jpg]
Отговори


Теми, които вероятно са свързани...
Тема: Автор Отговори: Прегледи: Последна публикация
Lightbulb Python 3 Majide 0 3,104 12-10-2019, 23:05
Последна публикация: Majide
  Помощ за Python Easy Html Parser - Elementum burst barev 24 34,641 14-07-2018, 18:44
Последна публикация: martinstz

Отваряне на: