summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-07-07 01:23:55 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-07-07 01:23:55 +0200
commitb1759bc440cd6013837697eb8de540914f693ffd (patch)
treed170caf63d7f65e44d23ea2d91a65759a1665928 /module
parent[Plugin] Fix decoding in load method (diff)
downloadpyload-b1759bc440cd6013837697eb8de540914f693ffd.tar.xz
No camelCase style anymore
Diffstat (limited to 'module')
-rw-r--r--module/plugins/accounts/AlldebridCom.py18
-rw-r--r--module/plugins/accounts/BackinNet.py2
-rw-r--r--module/plugins/accounts/BitshareCom.py8
-rw-r--r--module/plugins/accounts/CatShareNet.py10
-rw-r--r--module/plugins/accounts/CloudzillaTo.py6
-rw-r--r--module/plugins/accounts/CramitIn.py2
-rw-r--r--module/plugins/accounts/CzshareCom.py10
-rw-r--r--module/plugins/accounts/DebridItaliaCom.py8
-rw-r--r--module/plugins/accounts/DepositfilesCom.py6
-rw-r--r--module/plugins/accounts/EasybytezCom.py2
-rw-r--r--module/plugins/accounts/EuroshareEu.py6
-rw-r--r--module/plugins/accounts/ExashareCom.py2
-rw-r--r--module/plugins/accounts/FastixRu.py8
-rw-r--r--module/plugins/accounts/FastshareCz.py8
-rw-r--r--module/plugins/accounts/File4SafeCom.py2
-rw-r--r--module/plugins/accounts/FileParadoxIn.py2
-rw-r--r--module/plugins/accounts/FilecloudIo.py10
-rw-r--r--module/plugins/accounts/FilefactoryCom.py6
-rw-r--r--module/plugins/accounts/FilejungleCom.py6
-rw-r--r--module/plugins/accounts/FileomCom.py2
-rw-r--r--module/plugins/accounts/FilerNet.py10
-rw-r--r--module/plugins/accounts/FilerioCom.py2
-rw-r--r--module/plugins/accounts/FilesMailRu.py6
-rw-r--r--module/plugins/accounts/FileserveCom.py10
-rw-r--r--module/plugins/accounts/FourSharedCom.py6
-rw-r--r--module/plugins/accounts/FreakshareCom.py8
-rw-r--r--module/plugins/accounts/FreeWayMe.py22
-rw-r--r--module/plugins/accounts/FshareVn.py16
-rw-r--r--module/plugins/accounts/Ftp.py2
-rw-r--r--module/plugins/accounts/HellshareCz.py22
-rw-r--r--module/plugins/accounts/HighWayMe.py8
-rw-r--r--module/plugins/accounts/Http.py2
-rw-r--r--module/plugins/accounts/HugefilesNet.py2
-rw-r--r--module/plugins/accounts/HundredEightyUploadCom.py2
-rw-r--r--module/plugins/accounts/JunkyvideoCom.py2
-rw-r--r--module/plugins/accounts/JunocloudMe.py2
-rw-r--r--module/plugins/accounts/Keep2ShareCc.py14
-rw-r--r--module/plugins/accounts/LetitbitNet.py12
-rw-r--r--module/plugins/accounts/LinestorageCom.py2
-rw-r--r--module/plugins/accounts/LinksnappyCom.py12
-rw-r--r--module/plugins/accounts/MegaDebridEu.py10
-rw-r--r--module/plugins/accounts/MegaRapidCz.py6
-rw-r--r--module/plugins/accounts/MegaRapidoNet.py8
-rw-r--r--module/plugins/accounts/MegasharesCom.py12
-rw-r--r--module/plugins/accounts/MovReelCom.py2
-rw-r--r--module/plugins/accounts/MultihostersCom.py2
-rw-r--r--module/plugins/accounts/MultishareCz.py10
-rw-r--r--module/plugins/accounts/MyfastfileCom.py12
-rw-r--r--module/plugins/accounts/NitroflareCom.py18
-rw-r--r--module/plugins/accounts/NoPremiumPl.py18
-rw-r--r--module/plugins/accounts/NosuploadCom.py2
-rw-r--r--module/plugins/accounts/NovafileCom.py2
-rw-r--r--module/plugins/accounts/NowVideoSx.py10
-rw-r--r--module/plugins/accounts/OboomCom.py20
-rw-r--r--module/plugins/accounts/OneFichierCom.py10
-rw-r--r--module/plugins/accounts/OverLoadMe.py10
-rw-r--r--module/plugins/accounts/PremiumTo.py6
-rw-r--r--module/plugins/accounts/PremiumizeMe.py16
-rw-r--r--module/plugins/accounts/PutdriveCom.py2
-rw-r--r--module/plugins/accounts/QuickshareCz.py8
-rw-r--r--module/plugins/accounts/RPNetBiz.py18
-rw-r--r--module/plugins/accounts/RapideoPl.py18
-rw-r--r--module/plugins/accounts/RapidfileshareNet.py2
-rw-r--r--module/plugins/accounts/RapidgatorNet.py22
-rw-r--r--module/plugins/accounts/RapiduNet.py10
-rw-r--r--module/plugins/accounts/RarefileNet.py2
-rw-r--r--module/plugins/accounts/RealdebridCom.py8
-rw-r--r--module/plugins/accounts/RehostTo.py14
-rw-r--r--module/plugins/accounts/RyushareCom.py2
-rw-r--r--module/plugins/accounts/SafesharingEu.py2
-rw-r--r--module/plugins/accounts/SecureUploadEu.py2
-rw-r--r--module/plugins/accounts/SendmywayCom.py2
-rw-r--r--module/plugins/accounts/SharebeastCom.py2
-rw-r--r--module/plugins/accounts/ShareonlineBiz.py12
-rw-r--r--module/plugins/accounts/SimplyPremiumCom.py8
-rw-r--r--module/plugins/accounts/SimplydebridCom.py6
-rw-r--r--module/plugins/accounts/SmoozedCom.py16
-rw-r--r--module/plugins/accounts/StreamcloudEu.py2
-rw-r--r--module/plugins/accounts/TurbobitNet.py6
-rw-r--r--module/plugins/accounts/TusfilesNet.py2
-rw-r--r--module/plugins/accounts/UlozTo.py6
-rw-r--r--module/plugins/accounts/UploadableCh.py6
-rw-r--r--module/plugins/accounts/UploadcCom.py2
-rw-r--r--module/plugins/accounts/UploadedTo.py8
-rw-r--r--module/plugins/accounts/UploadheroCom.py8
-rw-r--r--module/plugins/accounts/UploadingCom.py8
-rw-r--r--module/plugins/accounts/UptoboxCom.py2
-rw-r--r--module/plugins/accounts/VidPlayNet.py2
-rw-r--r--module/plugins/accounts/WebshareCz.py16
-rw-r--r--module/plugins/accounts/WorldbytezCom.py2
-rw-r--r--module/plugins/accounts/XFileSharingPro.py6
-rw-r--r--module/plugins/accounts/YibaishiwuCom.py8
-rw-r--r--module/plugins/accounts/ZeveraCom.py10
-rw-r--r--module/plugins/captcha/CircleCaptcha.py104
-rw-r--r--module/plugins/captcha/GigasizeCom.py2
-rw-r--r--module/plugins/captcha/LinksaveIn.py2
-rw-r--r--module/plugins/captcha/NetloadIn.py2
-rw-r--r--module/plugins/captcha/ShareonlineBiz.py8
-rw-r--r--module/plugins/container/CCF.py2
-rw-r--r--module/plugins/container/DLC.py14
-rw-r--r--module/plugins/container/RSDF.py2
-rw-r--r--module/plugins/container/TXT.py8
-rw-r--r--module/plugins/crypter/BitshareComFolder.py2
-rw-r--r--module/plugins/crypter/C1NeonCom.py2
-rw-r--r--module/plugins/crypter/ChipDe.py4
-rw-r--r--module/plugins/crypter/CloudzillaToFolder.py6
-rw-r--r--module/plugins/crypter/CrockoComFolder.py2
-rw-r--r--module/plugins/crypter/CryptItCom.py2
-rw-r--r--module/plugins/crypter/CzshareComFolder.py2
-rw-r--r--module/plugins/crypter/DailymotionComFolder.py34
-rw-r--r--module/plugins/crypter/DataHuFolder.py6
-rw-r--r--module/plugins/crypter/DdlstorageComFolder.py2
-rw-r--r--module/plugins/crypter/DepositfilesComFolder.py2
-rw-r--r--module/plugins/crypter/Dereferer.py4
-rw-r--r--module/plugins/crypter/DevhostStFolder.py14
-rw-r--r--module/plugins/crypter/DlProtectCom.py8
-rw-r--r--module/plugins/crypter/DuckCryptInfo.py18
-rw-r--r--module/plugins/crypter/DuploadOrgFolder.py2
-rw-r--r--module/plugins/crypter/EasybytezComFolder.py2
-rw-r--r--module/plugins/crypter/EmbeduploadCom.py16
-rw-r--r--module/plugins/crypter/FilebeerInfoFolder.py2
-rw-r--r--module/plugins/crypter/FilecloudIoFolder.py2
-rw-r--r--module/plugins/crypter/FilecryptCc.py72
-rw-r--r--module/plugins/crypter/FilefactoryComFolder.py4
-rw-r--r--module/plugins/crypter/FilerNetFolder.py2
-rw-r--r--module/plugins/crypter/FileserveComFolder.py2
-rw-r--r--module/plugins/crypter/FilesonicComFolder.py2
-rw-r--r--module/plugins/crypter/FilestubeCom.py2
-rw-r--r--module/plugins/crypter/FiletramCom.py2
-rw-r--r--module/plugins/crypter/FiredriveComFolder.py2
-rw-r--r--module/plugins/crypter/FourChanOrg.py2
-rw-r--r--module/plugins/crypter/FreakhareComFolder.py4
-rw-r--r--module/plugins/crypter/FreetexthostCom.py4
-rw-r--r--module/plugins/crypter/FshareVnFolder.py2
-rw-r--r--module/plugins/crypter/FurLy.py2
-rw-r--r--module/plugins/crypter/Go4UpCom.py4
-rw-r--r--module/plugins/crypter/GooGl.py6
-rw-r--r--module/plugins/crypter/GoogledriveComFolder.py2
-rw-r--r--module/plugins/crypter/HoerbuchIn.py8
-rw-r--r--module/plugins/crypter/HotfileComFolder.py2
-rw-r--r--module/plugins/crypter/ILoadTo.py2
-rw-r--r--module/plugins/crypter/ImgurComAlbum.py4
-rw-r--r--module/plugins/crypter/LetitbitNetFolder.py2
-rw-r--r--module/plugins/crypter/LinkCryptWs.py114
-rw-r--r--module/plugins/crypter/LinkSaveIn.py2
-rw-r--r--module/plugins/crypter/LinkdecrypterCom.py10
-rw-r--r--module/plugins/crypter/LixIn.py12
-rw-r--r--module/plugins/crypter/LofCc.py2
-rw-r--r--module/plugins/crypter/MBLinkInfo.py2
-rw-r--r--module/plugins/crypter/MediafireComFolder.py8
-rw-r--r--module/plugins/crypter/MegaCoNzFolder.py2
-rw-r--r--module/plugins/crypter/MegaRapidCzFolder.py2
-rw-r--r--module/plugins/crypter/MegauploadComFolder.py2
-rw-r--r--module/plugins/crypter/Movie2KTo.py2
-rw-r--r--module/plugins/crypter/MultiUpOrg.py4
-rw-r--r--module/plugins/crypter/MultiloadCz.py6
-rw-r--r--module/plugins/crypter/MultiuploadCom.py2
-rw-r--r--module/plugins/crypter/NCryptIn.py142
-rw-r--r--module/plugins/crypter/NetfolderIn.py2
-rw-r--r--module/plugins/crypter/NitroflareComFolder.py4
-rw-r--r--module/plugins/crypter/NosvideoCom.py2
-rw-r--r--module/plugins/crypter/OneKhDe.py2
-rw-r--r--module/plugins/crypter/OronComFolder.py2
-rw-r--r--module/plugins/crypter/PastebinCom.py2
-rw-r--r--module/plugins/crypter/PastedCo.py2
-rw-r--r--module/plugins/crypter/QuickshareCzFolder.py2
-rw-r--r--module/plugins/crypter/RSLayerCom.py2
-rw-r--r--module/plugins/crypter/RelinkUs.py114
-rw-r--r--module/plugins/crypter/SafelinkingNet.py4
-rw-r--r--module/plugins/crypter/SecuredIn.py2
-rw-r--r--module/plugins/crypter/SexuriaCom.py18
-rw-r--r--module/plugins/crypter/ShSt.py2
-rw-r--r--module/plugins/crypter/ShareLinksBiz.py142
-rw-r--r--module/plugins/crypter/SharingmatrixComFolder.py2
-rw-r--r--module/plugins/crypter/SpeedLoadOrgFolder.py2
-rw-r--r--module/plugins/crypter/StealthTo.py2
-rw-r--r--module/plugins/crypter/TNTVillageScambioeticoOrg.py4
-rw-r--r--module/plugins/crypter/TinyurlCom.py2
-rw-r--r--module/plugins/crypter/TnyCz.py4
-rw-r--r--module/plugins/crypter/TrailerzoneInfo.py2
-rw-r--r--module/plugins/crypter/TurbobitNetFolder.py10
-rw-r--r--module/plugins/crypter/TusfilesNetFolder.py10
-rw-r--r--module/plugins/crypter/UlozToFolder.py6
-rw-r--r--module/plugins/crypter/UploadableChFolder.py2
-rw-r--r--module/plugins/crypter/UploadedToFolder.py2
-rw-r--r--module/plugins/crypter/WiiReloadedOrg.py2
-rw-r--r--module/plugins/crypter/WuploadComFolder.py2
-rw-r--r--module/plugins/crypter/XFileSharingProFolder.py2
-rw-r--r--module/plugins/crypter/XupPl.py2
-rw-r--r--module/plugins/crypter/YoutubeComFolder.py46
-rw-r--r--module/plugins/hooks/AlldebridComHook.py4
-rw-r--r--module/plugins/hooks/AndroidPhoneNotify.py25
-rw-r--r--module/plugins/hooks/AntiVirus.py36
-rw-r--r--module/plugins/hooks/BypassCaptcha.py30
-rw-r--r--module/plugins/hooks/Captcha9Kw.py72
-rw-r--r--module/plugins/hooks/CaptchaBrotherhood.py32
-rw-r--r--module/plugins/hooks/Checksum.py52
-rw-r--r--module/plugins/hooks/ClickAndLoad.py18
-rw-r--r--module/plugins/hooks/DeathByCaptcha.py42
-rw-r--r--module/plugins/hooks/DebridItaliaComHook.py4
-rw-r--r--module/plugins/hooks/DeleteFinished.py34
-rw-r--r--module/plugins/hooks/DownloadScheduler.py28
-rw-r--r--module/plugins/hooks/EasybytezComHook.py4
-rw-r--r--module/plugins/hooks/ExpertDecoders.py34
-rw-r--r--module/plugins/hooks/ExternalScripts.py69
-rw-r--r--module/plugins/hooks/ExtractArchive.py173
-rw-r--r--module/plugins/hooks/FastixRuHook.py4
-rw-r--r--module/plugins/hooks/FreeWayMeHook.py4
-rw-r--r--module/plugins/hooks/HighWayMeHook.py4
-rw-r--r--module/plugins/hooks/HotFolder.py14
-rw-r--r--module/plugins/hooks/IRCInterface.py40
-rw-r--r--module/plugins/hooks/ImageTyperz.py40
-rw-r--r--module/plugins/hooks/JustPremium.py14
-rw-r--r--module/plugins/hooks/LinkdecrypterComHook.py4
-rw-r--r--module/plugins/hooks/LinksnappyComHook.py4
-rw-r--r--module/plugins/hooks/MegaDebridEuHook.py6
-rw-r--r--module/plugins/hooks/MegaRapidoNetHook.py4
-rw-r--r--module/plugins/hooks/MergeFiles.py10
-rw-r--r--module/plugins/hooks/MultiHome.py24
-rw-r--r--module/plugins/hooks/MultihostersComHook.py2
-rw-r--r--module/plugins/hooks/MultishareCzHook.py4
-rw-r--r--module/plugins/hooks/MyfastfileComHook.py6
-rw-r--r--module/plugins/hooks/NoPremiumPlHook.py6
-rw-r--r--module/plugins/hooks/OverLoadMeHook.py4
-rw-r--r--module/plugins/hooks/PremiumToHook.py4
-rw-r--r--module/plugins/hooks/PremiumizeMeHook.py4
-rw-r--r--module/plugins/hooks/PutdriveComHook.py2
-rw-r--r--module/plugins/hooks/RPNetBizHook.py4
-rw-r--r--module/plugins/hooks/RapideoPlHook.py6
-rw-r--r--module/plugins/hooks/RealdebridComHook.py4
-rw-r--r--module/plugins/hooks/RehostToHook.py4
-rw-r--r--module/plugins/hooks/RestartFailed.py28
-rw-r--r--module/plugins/hooks/SimplyPremiumComHook.py4
-rw-r--r--module/plugins/hooks/SimplydebridComHook.py4
-rw-r--r--module/plugins/hooks/SkipRev.py10
-rw-r--r--module/plugins/hooks/SmoozedComHook.py4
-rw-r--r--module/plugins/hooks/UnSkipOnFail.py12
-rw-r--r--module/plugins/hooks/UpdateManager.py60
-rw-r--r--module/plugins/hooks/UserAgentSwitcher.py10
-rw-r--r--module/plugins/hooks/WindowsPhoneNotify.py29
-rw-r--r--module/plugins/hooks/XFileSharingPro.py48
-rw-r--r--module/plugins/hooks/XMPPInterface.py36
-rw-r--r--module/plugins/hooks/ZeveraComHook.py4
-rw-r--r--module/plugins/hoster/AlldebridCom.py14
-rw-r--r--module/plugins/hoster/AndroidfilehostCom.py16
-rw-r--r--module/plugins/hoster/BasePlugin.py26
-rw-r--r--module/plugins/hoster/BasketbuildCom.py16
-rw-r--r--module/plugins/hoster/BayfilesCom.py2
-rw-r--r--module/plugins/hoster/BezvadataCz.py36
-rw-r--r--module/plugins/hoster/BillionuploadsCom.py2
-rw-r--r--module/plugins/hoster/BitshareCom.py46
-rw-r--r--module/plugins/hoster/BoltsharingCom.py2
-rw-r--r--module/plugins/hoster/CatShareNet.py8
-rw-r--r--module/plugins/hoster/CloudzerNet.py2
-rw-r--r--module/plugins/hoster/CloudzillaTo.py16
-rw-r--r--module/plugins/hoster/CramitIn.py2
-rw-r--r--module/plugins/hoster/CrockoCom.py8
-rw-r--r--module/plugins/hoster/CyberlockerCh.py2
-rw-r--r--module/plugins/hoster/CzshareCom.py42
-rw-r--r--module/plugins/hoster/DailymotionCom.py32
-rw-r--r--module/plugins/hoster/DataHu.py6
-rw-r--r--module/plugins/hoster/DataportCz.py12
-rw-r--r--module/plugins/hoster/DateiTo.py12
-rw-r--r--module/plugins/hoster/DdlstorageCom.py2
-rw-r--r--module/plugins/hoster/DebridItaliaCom.py8
-rw-r--r--module/plugins/hoster/DepositfilesCom.py14
-rw-r--r--module/plugins/hoster/DevhostSt.py6
-rw-r--r--module/plugins/hoster/DlFreeFr.py22
-rw-r--r--module/plugins/hoster/DodanePl.py2
-rw-r--r--module/plugins/hoster/DropboxCom.py10
-rw-r--r--module/plugins/hoster/DuploadOrg.py2
-rw-r--r--module/plugins/hoster/EasybytezCom.py2
-rw-r--r--module/plugins/hoster/EdiskCz.py6
-rw-r--r--module/plugins/hoster/EgoFilesCom.py2
-rw-r--r--module/plugins/hoster/EnteruploadCom.py2
-rw-r--r--module/plugins/hoster/EpicShareNet.py2
-rw-r--r--module/plugins/hoster/EuroshareEu.py12
-rw-r--r--module/plugins/hoster/ExashareCom.py10
-rw-r--r--module/plugins/hoster/ExtabitCom.py16
-rw-r--r--module/plugins/hoster/FastixRu.py8
-rw-r--r--module/plugins/hoster/FastshareCz.py18
-rw-r--r--module/plugins/hoster/FileApeCom.py2
-rw-r--r--module/plugins/hoster/FileSharkPl.py22
-rw-r--r--module/plugins/hoster/FileStoreTo.py8
-rw-r--r--module/plugins/hoster/FilebeerInfo.py2
-rw-r--r--module/plugins/hoster/FileboomMe.py18
-rw-r--r--module/plugins/hoster/FilecloudIo.py26
-rw-r--r--module/plugins/hoster/FiledropperCom.py10
-rw-r--r--module/plugins/hoster/FilefactoryCom.py16
-rw-r--r--module/plugins/hoster/FilejungleCom.py4
-rw-r--r--module/plugins/hoster/FileomCom.py8
-rw-r--r--module/plugins/hoster/FilepostCom.py22
-rw-r--r--module/plugins/hoster/FilepupNet.py8
-rw-r--r--module/plugins/hoster/FilerNet.py12
-rw-r--r--module/plugins/hoster/FilerioCom.py2
-rw-r--r--module/plugins/hoster/FilesMailRu.py34
-rw-r--r--module/plugins/hoster/FileserveCom.py74
-rw-r--r--module/plugins/hoster/FileshareInUa.py2
-rw-r--r--module/plugins/hoster/FilesonicCom.py2
-rw-r--r--module/plugins/hoster/FileuploadNet.py6
-rw-r--r--module/plugins/hoster/FilezyNet.py2
-rw-r--r--module/plugins/hoster/FiredriveCom.py2
-rw-r--r--module/plugins/hoster/FlyFilesNet.py6
-rw-r--r--module/plugins/hoster/FourSharedCom.py6
-rw-r--r--module/plugins/hoster/FreakshareCom.py28
-rw-r--r--module/plugins/hoster/FreeWayMe.py14
-rw-r--r--module/plugins/hoster/FreevideoCz.py2
-rw-r--r--module/plugins/hoster/FshareVn.py26
-rw-r--r--module/plugins/hoster/Ftp.py16
-rw-r--r--module/plugins/hoster/GamefrontCom.py10
-rw-r--r--module/plugins/hoster/GigapetaCom.py10
-rw-r--r--module/plugins/hoster/GooIm.py8
-rw-r--r--module/plugins/hoster/GoogledriveCom.py12
-rw-r--r--module/plugins/hoster/HellshareCz.py6
-rw-r--r--module/plugins/hoster/HellspyCz.py2
-rw-r--r--module/plugins/hoster/HighWayMe.py24
-rw-r--r--module/plugins/hoster/HostujeNet.py10
-rw-r--r--module/plugins/hoster/HotfileCom.py2
-rw-r--r--module/plugins/hoster/HugefilesNet.py2
-rw-r--r--module/plugins/hoster/HundredEightyUploadCom.py2
-rw-r--r--module/plugins/hoster/IFileWs.py2
-rw-r--r--module/plugins/hoster/IcyFilesCom.py2
-rw-r--r--module/plugins/hoster/IfileIt.py2
-rw-r--r--module/plugins/hoster/IfolderRu.py16
-rw-r--r--module/plugins/hoster/JumbofilesCom.py8
-rw-r--r--module/plugins/hoster/JunocloudMe.py2
-rw-r--r--module/plugins/hoster/Keep2ShareCc.py32
-rw-r--r--module/plugins/hoster/KickloadCom.py2
-rw-r--r--module/plugins/hoster/KingfilesNet.py10
-rw-r--r--module/plugins/hoster/LemUploadsCom.py2
-rw-r--r--module/plugins/hoster/LetitbitNet.py36
-rw-r--r--module/plugins/hoster/LinksnappyCom.py8
-rw-r--r--module/plugins/hoster/LoadTo.py8
-rw-r--r--module/plugins/hoster/LolabitsEs.py10
-rw-r--r--module/plugins/hoster/LomafileCom.py2
-rw-r--r--module/plugins/hoster/LuckyShareNet.py20
-rw-r--r--module/plugins/hoster/MediafireCom.py18
-rw-r--r--module/plugins/hoster/MegaCoNz.py34
-rw-r--r--module/plugins/hoster/MegaDebridEu.py4
-rw-r--r--module/plugins/hoster/MegaFilesSe.py2
-rw-r--r--module/plugins/hoster/MegaRapidCz.py8
-rw-r--r--module/plugins/hoster/MegaRapidoNet.py8
-rw-r--r--module/plugins/hoster/MegacrypterCom.py8
-rw-r--r--module/plugins/hoster/MegareleaseOrg.py2
-rw-r--r--module/plugins/hoster/MegasharesCom.py32
-rw-r--r--module/plugins/hoster/MegauploadCom.py2
-rw-r--r--module/plugins/hoster/MegavideoCom.py2
-rw-r--r--module/plugins/hoster/MovReelCom.py2
-rw-r--r--module/plugins/hoster/MultihostersCom.py2
-rw-r--r--module/plugins/hoster/MultishareCz.py12
-rw-r--r--module/plugins/hoster/MyfastfileCom.py8
-rw-r--r--module/plugins/hoster/MystoreTo.py10
-rw-r--r--module/plugins/hoster/MyvideoDe.py2
-rw-r--r--module/plugins/hoster/NahrajCz.py2
-rw-r--r--module/plugins/hoster/NarodRu.py10
-rw-r--r--module/plugins/hoster/NetloadIn.py2
-rw-r--r--module/plugins/hoster/NitroflareCom.py8
-rw-r--r--module/plugins/hoster/NoPremiumPl.py26
-rw-r--r--module/plugins/hoster/NosuploadCom.py10
-rw-r--r--module/plugins/hoster/NovafileCom.py2
-rw-r--r--module/plugins/hoster/NowDownloadSx.py10
-rw-r--r--module/plugins/hoster/NowVideoSx.py8
-rw-r--r--module/plugins/hoster/OboomCom.py84
-rw-r--r--module/plugins/hoster/OneFichierCom.py14
-rw-r--r--module/plugins/hoster/OpenloadIo.py6
-rw-r--r--module/plugins/hoster/OronCom.py2
-rw-r--r--module/plugins/hoster/OverLoadMe.py12
-rw-r--r--module/plugins/hoster/PandaplaNet.py2
-rw-r--r--module/plugins/hoster/PornhostCom.py2
-rw-r--r--module/plugins/hoster/PornhubCom.py2
-rw-r--r--module/plugins/hoster/PotloadCom.py2
-rw-r--r--module/plugins/hoster/PremiumTo.py12
-rw-r--r--module/plugins/hoster/PremiumizeMe.py6
-rw-r--r--module/plugins/hoster/PromptfileCom.py8
-rw-r--r--module/plugins/hoster/PrzeklejPl.py2
-rw-r--r--module/plugins/hoster/PutdriveCom.py2
-rw-r--r--module/plugins/hoster/QuickshareCz.py22
-rw-r--r--module/plugins/hoster/RPNetBiz.py22
-rw-r--r--module/plugins/hoster/RapideoPl.py26
-rw-r--r--module/plugins/hoster/RapidfileshareNet.py2
-rw-r--r--module/plugins/hoster/RapidgatorNet.py32
-rw-r--r--module/plugins/hoster/RapiduNet.py18
-rw-r--r--module/plugins/hoster/RarefileNet.py2
-rw-r--r--module/plugins/hoster/RealdebridCom.py14
-rw-r--r--module/plugins/hoster/RedtubeCom.py2
-rw-r--r--module/plugins/hoster/RehostTo.py4
-rw-r--r--module/plugins/hoster/RemixshareCom.py8
-rw-r--r--module/plugins/hoster/RgHostNet.py2
-rw-r--r--module/plugins/hoster/SafesharingEu.py2
-rw-r--r--module/plugins/hoster/SecureUploadEu.py2
-rw-r--r--module/plugins/hoster/SendspaceCom.py12
-rw-r--r--module/plugins/hoster/Share4WebCom.py2
-rw-r--r--module/plugins/hoster/Share76Com.py2
-rw-r--r--module/plugins/hoster/ShareFilesCo.py2
-rw-r--r--module/plugins/hoster/SharebeesCom.py2
-rw-r--r--module/plugins/hoster/ShareonlineBiz.py52
-rw-r--r--module/plugins/hoster/ShareplaceCom.py6
-rw-r--r--module/plugins/hoster/SharingmatrixCom.py2
-rw-r--r--module/plugins/hoster/ShragleCom.py2
-rw-r--r--module/plugins/hoster/SimplyPremiumCom.py24
-rw-r--r--module/plugins/hoster/SimplydebridCom.py10
-rw-r--r--module/plugins/hoster/SizedriveCom.py10
-rw-r--r--module/plugins/hoster/SmoozedCom.py4
-rw-r--r--module/plugins/hoster/SockshareCom.py2
-rw-r--r--module/plugins/hoster/SolidfilesCom.py6
-rw-r--r--module/plugins/hoster/SoundcloudCom.py8
-rw-r--r--module/plugins/hoster/SpeedLoadOrg.py2
-rw-r--r--module/plugins/hoster/SpeedfileCz.py2
-rw-r--r--module/plugins/hoster/SpeedyshareCom.py8
-rw-r--r--module/plugins/hoster/StorageTo.py2
-rw-r--r--module/plugins/hoster/StreamCz.py12
-rw-r--r--module/plugins/hoster/StreamcloudEu.py8
-rw-r--r--module/plugins/hoster/TurbobitNet.py54
-rw-r--r--module/plugins/hoster/TurbouploadCom.py2
-rw-r--r--module/plugins/hoster/TusfilesNet.py10
-rw-r--r--module/plugins/hoster/TwoSharedCom.py6
-rw-r--r--module/plugins/hoster/UlozTo.py50
-rw-r--r--module/plugins/hoster/UloziskoSk.py12
-rw-r--r--module/plugins/hoster/UnibytesCom.py16
-rw-r--r--module/plugins/hoster/UnrestrictLi.py2
-rw-r--r--module/plugins/hoster/UpleaCom.py12
-rw-r--r--module/plugins/hoster/UploadStationCom.py2
-rw-r--r--module/plugins/hoster/UploadableCh.py14
-rw-r--r--module/plugins/hoster/UploadboxCom.py2
-rw-r--r--module/plugins/hoster/UploadedTo.py16
-rw-r--r--module/plugins/hoster/UploadhereCom.py2
-rw-r--r--module/plugins/hoster/UploadheroCom.py8
-rw-r--r--module/plugins/hoster/UploadingCom.py14
-rw-r--r--module/plugins/hoster/UploadkingCom.py2
-rw-r--r--module/plugins/hoster/UpstoreNet.py6
-rw-r--r--module/plugins/hoster/UptoboxCom.py8
-rw-r--r--module/plugins/hoster/VeehdCom.py10
-rw-r--r--module/plugins/hoster/VeohCom.py14
-rw-r--r--module/plugins/hoster/VidPlayNet.py2
-rw-r--r--module/plugins/hoster/VimeoCom.py20
-rw-r--r--module/plugins/hoster/Vipleech4UCom.py2
-rw-r--r--module/plugins/hoster/VkCom.py6
-rw-r--r--module/plugins/hoster/WarserverCz.py2
-rw-r--r--module/plugins/hoster/WebshareCz.py14
-rw-r--r--module/plugins/hoster/WrzucTo.py6
-rw-r--r--module/plugins/hoster/WuploadCom.py2
-rw-r--r--module/plugins/hoster/X7To.py2
-rw-r--r--module/plugins/hoster/XFileSharingPro.py8
-rw-r--r--module/plugins/hoster/XHamsterCom.py12
-rw-r--r--module/plugins/hoster/XVideosCom.py2
-rw-r--r--module/plugins/hoster/XdadevelopersCom.py10
-rw-r--r--module/plugins/hoster/Xdcc.py34
-rw-r--r--module/plugins/hoster/YadiSk.py14
-rw-r--r--module/plugins/hoster/YibaishiwuCom.py8
-rw-r--r--module/plugins/hoster/YoupornCom.py2
-rw-r--r--module/plugins/hoster/YourfilesTo.py4
-rw-r--r--module/plugins/hoster/YoutubeCom.py42
-rw-r--r--module/plugins/hoster/ZDF.py2
-rw-r--r--module/plugins/hoster/ZShareNet.py2
-rw-r--r--module/plugins/hoster/ZahikiNet.py8
-rw-r--r--module/plugins/hoster/ZeveraCom.py4
-rw-r--r--module/plugins/hoster/ZippyshareCom.py14
-rw-r--r--module/plugins/internal/Account.py108
-rw-r--r--module/plugins/internal/AdYouLike.py10
-rw-r--r--module/plugins/internal/AdsCaptcha.py10
-rw-r--r--module/plugins/internal/Captcha.py2
-rw-r--r--module/plugins/internal/Container.py2
-rw-r--r--module/plugins/internal/Crypter.py12
-rw-r--r--module/plugins/internal/DeadCrypter.py6
-rw-r--r--module/plugins/internal/DeadHoster.py6
-rw-r--r--module/plugins/internal/Extractor.py14
-rw-r--r--module/plugins/internal/Hook.py60
-rw-r--r--module/plugins/internal/Hoster.py138
-rw-r--r--module/plugins/internal/MultiHook.py68
-rw-r--r--module/plugins/internal/MultiHoster.py58
-rw-r--r--module/plugins/internal/OCR.py4
-rw-r--r--module/plugins/internal/Plugin.py58
-rw-r--r--module/plugins/internal/ReCaptcha.py40
-rw-r--r--module/plugins/internal/SevenZip.py8
-rw-r--r--module/plugins/internal/SimpleCrypter.py42
-rw-r--r--module/plugins/internal/SimpleHoster.py188
-rw-r--r--module/plugins/internal/SolveMedia.py18
-rw-r--r--module/plugins/internal/UnRar.py12
-rw-r--r--module/plugins/internal/UnZip.py4
-rw-r--r--module/plugins/internal/XFSAccount.py28
-rw-r--r--module/plugins/internal/XFSCrypter.py2
-rw-r--r--module/plugins/internal/XFSHoster.py70
482 files changed, 3125 insertions, 3093 deletions
diff --git a/module/plugins/accounts/AlldebridCom.py b/module/plugins/accounts/AlldebridCom.py
index a109faf4f..eb58da928 100644
--- a/module/plugins/accounts/AlldebridCom.py
+++ b/module/plugins/accounts/AlldebridCom.py
@@ -12,36 +12,36 @@ from module.plugins.internal.Account import Account
class AlldebridCom(Account):
__name__ = "AlldebridCom"
__type__ = "account"
- __version__ = "0.25"
+ __version__ = "0.26"
__description__ = """AllDebrid.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("Andy Voigt", "spamsales@online.de")]
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
html = self.load("http://www.alldebrid.com/account/", req=req)
soup = BeautifulSoup(html)
- #Try to parse expiration date directly from the control panel page (better accuracy)
+ # Try to parse expiration date directly from the control panel page (better accuracy)
try:
time_text = soup.find('div', attrs={'class': 'remaining_time_text'}).strong.string
- self.logDebug("Account expires in: %s" % time_text)
+ self.log_debug("Account expires in: %s" % time_text)
p = re.compile('\d+')
exp_data = p.findall(time_text)
exp_time = time.time() + int(exp_data[0]) * 24 * 60 * 60 + int(
exp_data[1]) * 60 * 60 + (int(exp_data[2]) - 1) * 60
- #Get expiration date from API
+ # Get expiration date from API
except Exception:
- data = self.getAccountData(user)
+ data = self.get_account_data(user)
html = self.load("https://www.alldebrid.com/api.php",
get={'action': "info_user", 'login': user, 'pw': data['password']}, req=req)
- self.logDebug(html)
+ self.log_debug(html)
xml = dom.parseString(html)
exp_time = time.time() + int(xml.getElementsByTagName("date")[0].childNodes[0].nodeValue) * 24 * 60 * 60
@@ -60,4 +60,4 @@ class AlldebridCom(Account):
if "This login doesn't exist" in html \
or "The password is not valid" in html \
or "Invalid captcha" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/BackinNet.py b/module/plugins/accounts/BackinNet.py
index 46c8d7ac5..c0c88d6f1 100644
--- a/module/plugins/accounts/BackinNet.py
+++ b/module/plugins/accounts/BackinNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class BackinNet(XFSAccount):
__name__ = "BackinNet"
__type__ = "account"
- __version__ = "0.01"
+ __version__ = "0.02"
__description__ = """Backin.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/BitshareCom.py b/module/plugins/accounts/BitshareCom.py
index 8f748b9e9..912b58173 100644
--- a/module/plugins/accounts/BitshareCom.py
+++ b/module/plugins/accounts/BitshareCom.py
@@ -6,21 +6,21 @@ from module.plugins.internal.Account import Account
class BitshareCom(Account):
__name__ = "BitshareCom"
__type__ = "account"
- __version__ = "0.14"
+ __version__ = "0.15"
__description__ = """Bitshare account plugin"""
__license__ = "GPLv3"
__authors__ = [("Paul King", None)]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://bitshare.com/mysettings.html", req=req)
if "\"http://bitshare.com/myupgrade.html\">Free" in html:
return {"validuntil": -1, "trafficleft": -1, "premium": False}
if not '<input type="checkbox" name="directdownload" checked="checked" />' in html:
- self.logWarning(_("Activate direct Download in your Bitshare Account"))
+ self.log_warning(_("Activate direct Download in your Bitshare Account"))
return {"validuntil": -1, "trafficleft": -1, "premium": True}
@@ -30,4 +30,4 @@ class BitshareCom(Account):
post={"user": user, "password": data['password'], "submit": "Login"}, req=req)
if "login" in req.lastEffectiveURL:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/CatShareNet.py b/module/plugins/accounts/CatShareNet.py
index 79e94cc17..8eb422962 100644
--- a/module/plugins/accounts/CatShareNet.py
+++ b/module/plugins/accounts/CatShareNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class CatShareNet(Account):
__name__ = "CatShareNet"
__type__ = "account"
- __version__ = "0.07"
+ __version__ = "0.08"
__description__ = """Catshare.net account plugin"""
__license__ = "GPLv3"
@@ -21,7 +21,7 @@ class CatShareNet(Account):
TRAFFIC_LEFT_PATTERN = r'<a href="/premium">([0-9.]+ [kMG]B)'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = -1
trafficleft = -1
@@ -33,7 +33,7 @@ class CatShareNet(Account):
try:
expiredate = re.search(self.VALID_UNTIL_PATTERN, html).group(1)
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
validuntil = time.mktime(time.strptime(expiredate, "%Y-%m-%d %H:%M:%S"))
@@ -41,7 +41,7 @@ class CatShareNet(Account):
pass
try:
- trafficleft = self.parseTraffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1))
+ trafficleft = self.parse_traffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1))
except Exception:
pass
@@ -57,4 +57,4 @@ class CatShareNet(Account):
'user[submit]': "Login"}, req=req)
if not '<a href="/logout">Wyloguj</a>' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/CloudzillaTo.py b/module/plugins/accounts/CloudzillaTo.py
index 2328b0a86..5716c8d94 100644
--- a/module/plugins/accounts/CloudzillaTo.py
+++ b/module/plugins/accounts/CloudzillaTo.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class CloudzillaTo(Account):
__name__ = "CloudzillaTo"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Cloudzilla.to account plugin"""
__license__ = "GPLv3"
@@ -18,7 +18,7 @@ class CloudzillaTo(Account):
PREMIUM_PATTERN = r'<h2>account type</h2>\s*Premium Account'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.cloudzilla.to/", req=req)
premium = True if re.search(self.PREMIUM_PATTERN, html) else False
@@ -33,4 +33,4 @@ class CloudzillaTo(Account):
'w' : "dologin"}, req=req)
if "ERROR" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/CramitIn.py b/module/plugins/accounts/CramitIn.py
index a9e2274a2..1e6dcca20 100644
--- a/module/plugins/accounts/CramitIn.py
+++ b/module/plugins/accounts/CramitIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class CramitIn(XFSAccount):
__name__ = "CramitIn"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Cramit.in account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/CzshareCom.py b/module/plugins/accounts/CzshareCom.py
index c53c1807b..f86264cf5 100644
--- a/module/plugins/accounts/CzshareCom.py
+++ b/module/plugins/accounts/CzshareCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class CzshareCom(Account):
__name__ = "CzshareCom"
__type__ = "account"
- __version__ = "0.19"
+ __version__ = "0.20"
__description__ = """Czshare.com account plugin, now Sdilej.cz"""
__license__ = "GPLv3"
@@ -20,7 +20,7 @@ class CzshareCom(Account):
CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([\d ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = None
trafficleft = None
@@ -29,11 +29,11 @@ class CzshareCom(Account):
try:
m = re.search(self.CREDIT_LEFT_PATTERN, html)
- trafficleft = self.parseTraffic(m.group(1).replace(' ', '').replace(',', '.')) + m.group(2)
+ trafficleft = self.parse_traffic(m.group(1).replace(' ', '').replace(',', '.')) + m.group(2)
validuntil = time.mktime(time.strptime(m.group(3), '%d.%m.%y %H:%M'))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
premium = True
@@ -50,4 +50,4 @@ class CzshareCom(Account):
"login-name": user}, req=req)
if '<div class="login' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/DebridItaliaCom.py b/module/plugins/accounts/DebridItaliaCom.py
index defa1a313..16101d177 100644
--- a/module/plugins/accounts/DebridItaliaCom.py
+++ b/module/plugins/accounts/DebridItaliaCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class DebridItaliaCom(Account):
__name__ = "DebridItaliaCom"
__type__ = "account"
- __version__ = "0.14"
+ __version__ = "0.15"
__description__ = """Debriditalia.com account plugin"""
__license__ = "GPLv3"
@@ -20,7 +20,7 @@ class DebridItaliaCom(Account):
WALID_UNTIL_PATTERN = r'Premium valid till: (.+?) \|'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
info = {"premium": False, "validuntil": None, "trafficleft": None}
html = self.load("http://debriditalia.com/", req=req)
@@ -30,7 +30,7 @@ class DebridItaliaCom(Account):
validuntil = time.mktime(time.strptime(m.group(1), "%d/%m/%Y %H:%M"))
info = {"premium": True, "validuntil": validuntil, "trafficleft": -1}
else:
- self.logError(_("Unable to retrieve account information"))
+ self.log_error(_("Unable to retrieve account information"))
return info
@@ -40,4 +40,4 @@ class DebridItaliaCom(Account):
get={'u': user, 'p': data['password']}, req=req)
if 'NO' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/DepositfilesCom.py b/module/plugins/accounts/DepositfilesCom.py
index e89f0add8..24cbad486 100644
--- a/module/plugins/accounts/DepositfilesCom.py
+++ b/module/plugins/accounts/DepositfilesCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class DepositfilesCom(Account):
__name__ = "DepositfilesCom"
__type__ = "account"
- __version__ = "0.33"
+ __version__ = "0.34"
__description__ = """Depositfiles.com account plugin"""
__license__ = "GPLv3"
@@ -18,7 +18,7 @@ class DepositfilesCom(Account):
("Walter Purcaro", "vuolter@gmail.com")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("https://dfiles.eu/de/gold/", req=req)
validuntil = re.search(r"Sie haben Gold Zugang bis: <b>(.*?)</b></div>", html).group(1)
@@ -32,4 +32,4 @@ class DepositfilesCom(Account):
post={"login": user, "password": data['password']}, req=req)
if r'<div class="error_message">Sie haben eine falsche Benutzername-Passwort-Kombination verwendet.</div>' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/EasybytezCom.py b/module/plugins/accounts/EasybytezCom.py
index 93d3e2c19..b78523b62 100644
--- a/module/plugins/accounts/EasybytezCom.py
+++ b/module/plugins/accounts/EasybytezCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class EasybytezCom(XFSAccount):
__name__ = "EasybytezCom"
__type__ = "account"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """EasyBytez.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/EuroshareEu.py b/module/plugins/accounts/EuroshareEu.py
index 4af9803b7..ffe30d02f 100644
--- a/module/plugins/accounts/EuroshareEu.py
+++ b/module/plugins/accounts/EuroshareEu.py
@@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account
class EuroshareEu(Account):
__name__ = "EuroshareEu"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Euroshare.eu account plugin"""
__license__ = "GPLv3"
__authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
self.relogin(user)
html = self.load("http://euroshare.eu/customer-zone/settings/", req=req)
@@ -38,4 +38,4 @@ class EuroshareEu(Account):
"password": data['password']}, req=req)
if u">Nesprávne prihlasovacie meno alebo heslo" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/ExashareCom.py b/module/plugins/accounts/ExashareCom.py
index 431798522..907592bf7 100644
--- a/module/plugins/accounts/ExashareCom.py
+++ b/module/plugins/accounts/ExashareCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class ExashareCom(XFSAccount):
__name__ = "ExashareCom"
__type__ = "account"
- __version__ = "0.01"
+ __version__ = "0.02"
__description__ = """Exashare.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/FastixRu.py b/module/plugins/accounts/FastixRu.py
index dedbc0d5d..eaf12619a 100644
--- a/module/plugins/accounts/FastixRu.py
+++ b/module/plugins/accounts/FastixRu.py
@@ -7,15 +7,15 @@ from module.common.json_layer import json_loads
class FastixRu(Account):
__name__ = "FastixRu"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """Fastix account plugin"""
__license__ = "GPLv3"
__authors__ = [("Massimo Rosamilia", "max@spiritix.eu")]
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
html = json_loads(self.load("http://fastix.ru/api_v2/", get={'apikey': data['api'], 'sub': "getaccountdetails"}), req=req)
points = html['points']
@@ -38,4 +38,4 @@ class FastixRu(Account):
data['api'] = api
if "error_code" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FastshareCz.py b/module/plugins/accounts/FastshareCz.py
index 54253041c..be3a91a16 100644
--- a/module/plugins/accounts/FastshareCz.py
+++ b/module/plugins/accounts/FastshareCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class FastshareCz(Account):
__name__ = "FastshareCz"
__type__ = "account"
- __version__ = "0.07"
+ __version__ = "0.08"
__description__ = """Fastshare.cz account plugin"""
__license__ = "GPLv3"
@@ -19,7 +19,7 @@ class FastshareCz(Account):
CREDIT_PATTERN = r'Credit\s*:\s*</td>\s*<td>(.+?)\s*<'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = -1
trafficleft = None
premium = False
@@ -28,7 +28,7 @@ class FastshareCz(Account):
m = re.search(self.CREDIT_PATTERN, html)
if m:
- trafficleft = self.parseTraffic(m.group(1))
+ trafficleft = self.parse_traffic(m.group(1))
premium = bool(trafficleft)
@@ -46,4 +46,4 @@ class FastshareCz(Account):
post={'login': user, 'heslo': data['password']}, req=req)
if ">Wrong username or password" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/File4SafeCom.py b/module/plugins/accounts/File4SafeCom.py
index 50fe1aac8..74038a457 100644
--- a/module/plugins/accounts/File4SafeCom.py
+++ b/module/plugins/accounts/File4SafeCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class File4SafeCom(XFSAccount):
__name__ = "File4SafeCom"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """File4Safe.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/FileParadoxIn.py b/module/plugins/accounts/FileParadoxIn.py
index c12d99d6a..4bf179fbf 100644
--- a/module/plugins/accounts/FileParadoxIn.py
+++ b/module/plugins/accounts/FileParadoxIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class FileParadoxIn(XFSAccount):
__name__ = "FileParadoxIn"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """FileParadox.in account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/FilecloudIo.py b/module/plugins/accounts/FilecloudIo.py
index 4d69a2ae2..3c3f79ed8 100644
--- a/module/plugins/accounts/FilecloudIo.py
+++ b/module/plugins/accounts/FilecloudIo.py
@@ -7,7 +7,7 @@ from module.common.json_layer import json_loads
class FilecloudIo(Account):
__name__ = "FilecloudIo"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """FilecloudIo account plugin"""
__license__ = "GPLv3"
@@ -15,16 +15,16 @@ class FilecloudIo(Account):
("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
#: It looks like the first API request always fails, so we retry 5 times, it should work on the second try
for _i in xrange(5):
rep = self.load("https://secure.filecloud.io/api-fetch_apikey.api",
- post={"username": user, "password": self.getAccountData(user)['password']})
+ post={"username": user, "password": self.get_account_data(user)['password']})
rep = json_loads(rep)
if rep['status'] == 'ok':
break
elif rep['status'] == 'error' and rep['message'] == 'no such user or wrong password':
- self.logError(_("Wrong username or password"))
+ self.log_error(_("Wrong username or password"))
return {"valid": False, "premium": False}
else:
return {"premium": False}
@@ -56,4 +56,4 @@ class FilecloudIo(Account):
req=req)
if "you have successfully logged in" not in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FilefactoryCom.py b/module/plugins/accounts/FilefactoryCom.py
index 9d61ea927..a950217f4 100644
--- a/module/plugins/accounts/FilefactoryCom.py
+++ b/module/plugins/accounts/FilefactoryCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account
class FilefactoryCom(Account):
__name__ = "FilefactoryCom"
__type__ = "account"
- __version__ = "0.16"
+ __version__ = "0.17"
__description__ = """Filefactory.com account plugin"""
__license__ = "GPLv3"
@@ -21,7 +21,7 @@ class FilefactoryCom(Account):
VALID_UNTIL_PATTERN = r'Premium valid until: <strong>(?P<D>\d{1,2})\w{1,2} (?P<M>\w{3}), (?P<Y>\d{4})</strong>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.filefactory.com/account/", req=req)
m = re.search(self.VALID_UNTIL_PATTERN, html)
@@ -45,4 +45,4 @@ class FilefactoryCom(Account):
"Submit" : "Sign In"}, req=req)
if req.lastEffectiveURL != "http://www.filefactory.com/account/":
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FilejungleCom.py b/module/plugins/accounts/FilejungleCom.py
index 459c70c95..5b4092681 100644
--- a/module/plugins/accounts/FilejungleCom.py
+++ b/module/plugins/accounts/FilejungleCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class FilejungleCom(Account):
__name__ = "FilejungleCom"
__type__ = "account"
- __version__ = "0.13"
+ __version__ = "0.14"
__description__ = """Filejungle.com account plugin"""
__license__ = "GPLv3"
@@ -23,7 +23,7 @@ class FilejungleCom(Account):
LOGIN_FAILED_PATTERN = r'<span htmlfor="loginUser(Name|Password)" generated="true" class="fail_info">'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load(self.URL + "dashboard.php", req=req)
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
@@ -46,4 +46,4 @@ class FilejungleCom(Account):
"recaptcha_shortencode_field": ""}, req=req)
if re.search(self.LOGIN_FAILED_PATTERN, html):
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FileomCom.py b/module/plugins/accounts/FileomCom.py
index 7c743f56a..820185497 100644
--- a/module/plugins/accounts/FileomCom.py
+++ b/module/plugins/accounts/FileomCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class FileomCom(XFSAccount):
__name__ = "FileomCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Fileom.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/FilerNet.py b/module/plugins/accounts/FilerNet.py
index 9ab900831..acee71912 100644
--- a/module/plugins/accounts/FilerNet.py
+++ b/module/plugins/accounts/FilerNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class FilerNet(Account):
__name__ = "FilerNet"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Filer.net account plugin"""
__license__ = "GPLv3"
@@ -22,7 +22,7 @@ class FilerNet(Account):
FREE_PATTERN = r'Account Status</th>\s*<td>\s*Free'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("https://filer.net/profile", req=req)
#: Free user
@@ -34,11 +34,11 @@ class FilerNet(Account):
if until and traffic:
validuntil = time.mktime(time.strptime(until.group(1), "%d.%m.%Y %H:%M:%S"))
- trafficleft = self.parseTraffic(traffic.group(1))
+ trafficleft = self.parse_traffic(traffic.group(1))
return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft}
else:
- self.logError(_("Unable to retrieve account information"))
+ self.log_error(_("Unable to retrieve account information"))
return {"premium": False, "validuntil": None, "trafficleft": None}
@@ -55,4 +55,4 @@ class FilerNet(Account):
"_target_path": "https://filer.net/"}, req=req)
if 'Logout' not in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FilerioCom.py b/module/plugins/accounts/FilerioCom.py
index 4c6755293..6c34ab04c 100644
--- a/module/plugins/accounts/FilerioCom.py
+++ b/module/plugins/accounts/FilerioCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class FilerioCom(XFSAccount):
__name__ = "FilerioCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """FileRio.in account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/FilesMailRu.py b/module/plugins/accounts/FilesMailRu.py
index a1f86f7b5..c8490bf2f 100644
--- a/module/plugins/accounts/FilesMailRu.py
+++ b/module/plugins/accounts/FilesMailRu.py
@@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account
class FilesMailRu(Account):
__name__ = "FilesMailRu"
__type__ = "account"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Filesmail.ru account plugin"""
__license__ = "GPLv3"
__authors__ = [("RaNaN", "RaNaN@pyload.org")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
return {"validuntil": None, "trafficleft": None}
@@ -27,4 +27,4 @@ class FilesMailRu(Account):
"Page": "http://files.mail.ru/"}, req=req)
if "НеверМПе ОЌя пПльзПвателя ОлО парПль" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FileserveCom.py b/module/plugins/accounts/FileserveCom.py
index bda6efc8d..5c6c15167 100644
--- a/module/plugins/accounts/FileserveCom.py
+++ b/module/plugins/accounts/FileserveCom.py
@@ -9,15 +9,15 @@ from module.common.json_layer import json_loads
class FileserveCom(Account):
__name__ = "FileserveCom"
__type__ = "account"
- __version__ = "0.21"
+ __version__ = "0.22"
__description__ = """Fileserve.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("mkaay", "mkaay@mkaay.de")]
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
html = self.load("http://app.fileserve.com/api/login/", post={"username": user, "password": data['password'],
"submit": "Submit+Query"}, req=req)
@@ -36,9 +36,9 @@ class FileserveCom(Account):
res = json_loads(html)
if not res['type']:
- self.wrongPassword()
+ self.wrong_password()
- #login at fileserv html
+ # login at fileserv html
self.load("http://www.fileserve.com/login.php",
post={"loginUserName": user, "loginUserPassword": data['password'], "autoLogin": "checked",
"loginFormSubmit": "Login"}, req=req)
diff --git a/module/plugins/accounts/FourSharedCom.py b/module/plugins/accounts/FourSharedCom.py
index 2f79d944c..9471e49ca 100644
--- a/module/plugins/accounts/FourSharedCom.py
+++ b/module/plugins/accounts/FourSharedCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account
class FourSharedCom(Account):
__name__ = "FourSharedCom"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """FourShared.com account plugin"""
__license__ = "GPLv3"
@@ -14,7 +14,7 @@ class FourSharedCom(Account):
("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
#: Free mode only for now
return {"premium": False}
@@ -30,4 +30,4 @@ class FourSharedCom(Account):
'returnTo' : "http://www.4shared.com/account/home.jsp"}, req=req)
if 'Please log in to access your 4shared account' in res:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FreakshareCom.py b/module/plugins/accounts/FreakshareCom.py
index b33790071..7548338f4 100644
--- a/module/plugins/accounts/FreakshareCom.py
+++ b/module/plugins/accounts/FreakshareCom.py
@@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account
class FreakshareCom(Account):
__name__ = "FreakshareCom"
__type__ = "account"
- __version__ = "0.14"
+ __version__ = "0.15"
__description__ = """Freakshare.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("RaNaN", "RaNaN@pyload.org")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = None
trafficleft = None
@@ -32,7 +32,7 @@ class FreakshareCom(Account):
try:
m = re.search(r'Traffic verbleibend:</td>\s*<td>([^<]+)', html, re.M)
- trafficleft = self.parseTraffic(m.group(1))
+ trafficleft = self.parse_traffic(m.group(1))
except Exception:
pass
@@ -47,4 +47,4 @@ class FreakshareCom(Account):
post={"submit": "Login", "user": user, "pass": data['password']}, req=req)
if ">Wrong Username or Password" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/FreeWayMe.py b/module/plugins/accounts/FreeWayMe.py
index b9a0acea7..95977bd0f 100644
--- a/module/plugins/accounts/FreeWayMe.py
+++ b/module/plugins/accounts/FreeWayMe.py
@@ -7,21 +7,21 @@ from module.common.json_layer import json_loads
class FreeWayMe(Account):
__name__ = "FreeWayMe"
__type__ = "account"
- __version__ = "0.15"
+ __version__ = "0.16"
__description__ = """FreeWayMe account plugin"""
__license__ = "GPLv3"
__authors__ = [("Nicolas Giese", "james@free-way.me")]
- def loadAccountInfo(self, user, req):
- status = self.getAccountStatus(user, req)
+ def load_account_info(self, user, req):
+ status = self.get_account_status(user, req)
- self.logDebug(status)
+ self.log_debug(status)
account_info = {"validuntil": -1, "premium": False}
if status['premium'] == "Free":
- account_info['trafficleft'] = self.parseTraffic(status['guthaben'] + "MB")
+ account_info['trafficleft'] = self.parse_traffic(status['guthaben'] + "MB")
elif status['premium'] == "Spender":
account_info['trafficleft'] = -1
elif status['premium'] == "Flatrate":
@@ -33,20 +33,20 @@ class FreeWayMe(Account):
def login(self, user, data, req):
- status = self.getAccountStatus(user, req)
+ status = self.get_account_status(user, req)
#: Check if user and password are valid
if not status:
- self.wrongPassword()
+ self.wrong_password()
- def getAccountStatus(self, user, req):
+ def get_account_status(self, user, req):
answer = self.load("http://www.free-way.bz/ajax/jd.php", #@TODO: Revert to `https` in 0.4.10
- get={"id": 4, "user": user, "pass": self.getAccountData(user)['password']})
+ get={"id": 4, "user": user, "pass": self.get_account_data(user)['password']})
- self.logDebug("Login: %s" % answer)
+ self.log_debug("Login: %s" % answer)
if answer == "Invalid login":
- self.wrongPassword()
+ self.wrong_password()
return json_loads(answer)
diff --git a/module/plugins/accounts/FshareVn.py b/module/plugins/accounts/FshareVn.py
index 67aafae86..3149d6548 100644
--- a/module/plugins/accounts/FshareVn.py
+++ b/module/plugins/accounts/FshareVn.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class FshareVn(Account):
__name__ = "FshareVn"
__type__ = "account"
- __version__ = "0.10"
+ __version__ = "0.11"
__description__ = """Fshare.vn account plugin"""
__license__ = "GPLv3"
@@ -23,19 +23,19 @@ class FshareVn(Account):
DIRECT_DOWNLOAD_PATTERN = ur'<input type="checkbox"\s*([^=>]*)[^>]*/>Kích hoạt download trực tiếp</dt>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.fshare.vn/account_info.php", req=req)
if re.search(self.LIFETIME_PATTERN, html):
- self.logDebug("Lifetime membership detected")
- trafficleft = self.getTrafficLeft()
+ self.log_debug("Lifetime membership detected")
+ trafficleft = self.get_traffic_left()
return {"validuntil": -1, "trafficleft": trafficleft, "premium": True}
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
premium = True
validuntil = time.mktime(time.strptime(m.group(1), '%I:%M:%S %p %d-%m-%Y'))
- trafficleft = self.getTrafficLeft()
+ trafficleft = self.get_traffic_left()
else:
premium = False
validuntil = None
@@ -53,9 +53,9 @@ class FshareVn(Account):
referer=True, req=req)
if not re.search(r'<img\s+alt="VIP"', html):
- self.wrongPassword()
+ self.wrong_password()
- def getTrafficLeft(self):
+ def get_traffic_left(self):
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
- return self.parseTraffic(m.group(1) + m.group(2)) if m else 0
+ return self.parse_traffic(m.group(1) + m.group(2)) if m else 0
diff --git a/module/plugins/accounts/Ftp.py b/module/plugins/accounts/Ftp.py
index 145ba47be..bebe0e2d6 100644
--- a/module/plugins/accounts/Ftp.py
+++ b/module/plugins/accounts/Ftp.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account
class Ftp(Account):
__name__ = "Ftp"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Ftp dummy account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/HellshareCz.py b/module/plugins/accounts/HellshareCz.py
index a1f50eb8b..76a9597ee 100644
--- a/module/plugins/accounts/HellshareCz.py
+++ b/module/plugins/accounts/HellshareCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class HellshareCz(Account):
__name__ = "HellshareCz"
__type__ = "account"
- __version__ = "0.17"
+ __version__ = "0.18"
__description__ = """Hellshare.cz account plugin"""
__license__ = "GPLv3"
@@ -19,7 +19,7 @@ class HellshareCz(Account):
CREDIT_LEFT_PATTERN = r'<div class="credit-link">\s*<table>\s*<tr>\s*<th>(\d+|\d\d\.\d\d\.)</th>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
self.relogin(user)
html = self.load("http://www.hellshare.com/", req=req)
@@ -33,18 +33,18 @@ class HellshareCz(Account):
premium = True
try:
if "." in credit:
- #Time-based account
+ # Time-based account
vt = [int(x) for x in credit.split('.')[:2]]
lt = time.localtime()
year = lt.tm_year + int(vt[1] < lt.tm_mon or (vt[1] == lt.tm_mon and vt[0] < lt.tm_mday))
validuntil = time.mktime(time.strptime("%s%d 23:59:59" % (credit, year), "%d.%m.%Y %H:%M:%S"))
trafficleft = -1
else:
- #Traffic-based account
- trafficleft = self.parseTraffic(credit + "MB")
+ # Traffic-based account
+ trafficleft = self.parse_traffic(credit + "MB")
validuntil = -1
except Exception, e:
- self.logError(_("Unable to parse credit info"), e)
+ self.log_error(_("Unable to parse credit info"), e)
validuntil = -1
trafficleft = -1
@@ -54,18 +54,18 @@ class HellshareCz(Account):
def login(self, user, data, req):
html = self.load('http://www.hellshare.com/', req=req)
if req.lastEffectiveURL != 'http://www.hellshare.com/':
- #Switch to English
- self.logDebug("Switch lang - URL: %s" % req.lastEffectiveURL)
+ # Switch to English
+ self.log_debug("Switch lang - URL: %s" % req.lastEffectiveURL)
json = self.load("%s?do=locRouter-show" % req.lastEffectiveURL, req=req)
hash = re.search(r"(\-\-[0-9a-f]+\-)", json).group(1)
- self.logDebug("Switch lang - HASH: %s" % hash)
+ self.log_debug("Switch lang - HASH: %s" % hash)
html = self.load('http://www.hellshare.com/%s/' % hash, req=req)
if re.search(self.CREDIT_LEFT_PATTERN, html):
- self.logDebug("Already logged in")
+ self.log_debug("Already logged in")
return
html = self.load('https://www.hellshare.com/login?do=loginForm-submit',
@@ -75,4 +75,4 @@ class HellshareCz(Account):
"perm_login": "on"}, req=req)
if "<p>You input a wrong user name or wrong password</p>" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/HighWayMe.py b/module/plugins/accounts/HighWayMe.py
index d85db9769..f6baaa0a1 100644
--- a/module/plugins/accounts/HighWayMe.py
+++ b/module/plugins/accounts/HighWayMe.py
@@ -7,21 +7,21 @@ from module.plugins.internal.Account import Account
class HighWayMe(Account):
__name__ = "HighWayMe.py"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """High-Way.me account plugin"""
__license__ = "GPLv3"
__authors__ = [("EvolutionClip", "evolutionclip@live.de")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = -1
trafficleft = None
json_data = self.load('https://high-way.me/api.php?user', req=req)
- self.logDebug("JSON data: %s" % json_data)
+ self.log_debug("JSON data: %s" % json_data)
json_data = json_loads(json_data)
@@ -44,4 +44,4 @@ class HighWayMe(Account):
post={'login': '1', 'user': user, 'pass': data['password']}, req=req)
if 'UserOrPassInvalid' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/Http.py b/module/plugins/accounts/Http.py
index 2f12e56d9..369deade4 100644
--- a/module/plugins/accounts/Http.py
+++ b/module/plugins/accounts/Http.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account
class Http(Account):
__name__ = "Http"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Http dummy account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/HugefilesNet.py b/module/plugins/accounts/HugefilesNet.py
index 5da3bbc37..9fd7b319b 100644
--- a/module/plugins/accounts/HugefilesNet.py
+++ b/module/plugins/accounts/HugefilesNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class HugefilesNet(XFSAccount):
__name__ = "HugefilesNet"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Hugefiles.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/HundredEightyUploadCom.py b/module/plugins/accounts/HundredEightyUploadCom.py
index 319a3feee..f8dcd2252 100644
--- a/module/plugins/accounts/HundredEightyUploadCom.py
+++ b/module/plugins/accounts/HundredEightyUploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class HundredEightyUploadCom(XFSAccount):
__name__ = "HundredEightyUploadCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """180upload.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/JunkyvideoCom.py b/module/plugins/accounts/JunkyvideoCom.py
index 8275ff176..f4c12affb 100644
--- a/module/plugins/accounts/JunkyvideoCom.py
+++ b/module/plugins/accounts/JunkyvideoCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class JunkyvideoCom(XFSAccount):
__name__ = "JunkyvideoCom"
__type__ = "account"
- __version__ = "0.01"
+ __version__ = "0.02"
__description__ = """Junkyvideo.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/JunocloudMe.py b/module/plugins/accounts/JunocloudMe.py
index b0fc160f3..a72b1a634 100644
--- a/module/plugins/accounts/JunocloudMe.py
+++ b/module/plugins/accounts/JunocloudMe.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class JunocloudMe(XFSAccount):
__name__ = "JunocloudMe"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Junocloud.me account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/Keep2ShareCc.py b/module/plugins/accounts/Keep2ShareCc.py
index 617e18f25..71c099bea 100644
--- a/module/plugins/accounts/Keep2ShareCc.py
+++ b/module/plugins/accounts/Keep2ShareCc.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class Keep2ShareCc(Account):
__name__ = "Keep2ShareCc"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Keep2Share.cc account plugin"""
__license__ = "GPLv3"
@@ -23,7 +23,7 @@ class Keep2ShareCc(Account):
LOGIN_FAIL_PATTERN = r'Please fix the following input errors'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = -1
premium = False
@@ -33,7 +33,7 @@ class Keep2ShareCc(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1).strip()
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
if expiredate == "LifeTime":
premium = True
@@ -43,7 +43,7 @@ class Keep2ShareCc(Account):
validuntil = time.mktime(time.strptime(expiredate, "%Y.%m.%d"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
premium = True if validuntil > time.mktime(time.gmtime()) else False
@@ -51,10 +51,10 @@ class Keep2ShareCc(Account):
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
try:
- trafficleft = self.parseTraffic(m.group(1))
+ trafficleft = self.parse_traffic(m.group(1))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium}
@@ -69,4 +69,4 @@ class Keep2ShareCc(Account):
'yt0' : ""}, req=req)
if re.search(self.LOGIN_FAIL_PATTERN, html):
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/LetitbitNet.py b/module/plugins/accounts/LetitbitNet.py
index 811abd971..6b8fcf960 100644
--- a/module/plugins/accounts/LetitbitNet.py
+++ b/module/plugins/accounts/LetitbitNet.py
@@ -7,23 +7,23 @@ from module.plugins.internal.Account import Account
class LetitbitNet(Account):
__name__ = "LetitbitNet"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Letitbit.net account plugin"""
__license__ = "GPLv3"
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
## DISABLED BECAUSE IT GET 'key exausted' EVEN IF VALID ##
- # api_key = self.getAccountData(user)['password']
+ # api_key = self.get_account_data(user)['password']
# json_data = [api_key, ['key/info']]
# api_rep = self.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}, req=req)
- # self.logDebug("API Key Info: " + api_rep)
+ # self.log_debug("API Key Info: " + api_rep)
# api_rep = json_loads(api_rep)
#
# if api_rep['status'] == 'FAIL':
- # self.logWarning(api_rep['data'])
+ # self.log_warning(api_rep['data'])
# return {'valid': False, 'premium': False}
return {"premium": True}
@@ -31,4 +31,4 @@ class LetitbitNet(Account):
def login(self, user, data, req):
#: API_KEY is the username and the PREMIUM_KEY is the password
- self.logInfo(_("You must use your API KEY as username and the PREMIUM KEY as password"))
+ self.log_info(_("You must use your API KEY as username and the PREMIUM KEY as password"))
diff --git a/module/plugins/accounts/LinestorageCom.py b/module/plugins/accounts/LinestorageCom.py
index a48d5beb9..6f6f21c4f 100644
--- a/module/plugins/accounts/LinestorageCom.py
+++ b/module/plugins/accounts/LinestorageCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class LinestorageCom(XFSAccount):
__name__ = "LinestorageCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Linestorage.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/LinksnappyCom.py b/module/plugins/accounts/LinksnappyCom.py
index 4a475bd24..466495ac0 100644
--- a/module/plugins/accounts/LinksnappyCom.py
+++ b/module/plugins/accounts/LinksnappyCom.py
@@ -9,19 +9,19 @@ from module.common.json_layer import json_loads
class LinksnappyCom(Account):
__name__ = "LinksnappyCom"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Linksnappy.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
r = self.load('http://gen.linksnappy.com/lseAPI.php',
get={'act': 'USERDETAILS', 'username': user, 'password': hashlib.md5(data['password'], req=req).hexdigest()})
- self.logDebug("JSON data: " + r)
+ self.log_debug("JSON data: " + r)
j = json_loads(r)
@@ -42,7 +42,7 @@ class LinksnappyCom(Account):
if 'trafficleft' not in j['return'] or isinstance(j['return']['trafficleft'], str):
trafficleft = -1
else:
- trafficleft = self.parseTraffic("%d MB" % j['return']['trafficleft'])
+ trafficleft = self.parse_traffic("%d MB" % j['return']['trafficleft'])
return {'premium' : True ,
'validuntil' : validuntil ,
@@ -56,4 +56,4 @@ class LinksnappyCom(Account):
'password': hashlib.md5(data['password'], req=req).hexdigest()})
if "Invalid Account Details" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/MegaDebridEu.py b/module/plugins/accounts/MegaDebridEu.py
index 53c67833c..7a6e36f05 100644
--- a/module/plugins/accounts/MegaDebridEu.py
+++ b/module/plugins/accounts/MegaDebridEu.py
@@ -7,7 +7,7 @@ from module.common.json_layer import json_loads
class MegaDebridEu(Account):
__name__ = "MegaDebridEu"
__type__ = "account"
- __version__ = "0.21"
+ __version__ = "0.22"
__description__ = """Mega-debrid.eu account plugin"""
__license__ = "GPLv3"
@@ -18,8 +18,8 @@ class MegaDebridEu(Account):
API_URL = "https://www.mega-debrid.eu/api.php"
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
jsonResponse = self.load(self.API_URL,
get={'action': 'connectUser', 'login': user, 'password': data['password']}, req=req)
res = json_loads(jsonResponse)
@@ -27,7 +27,7 @@ class MegaDebridEu(Account):
if res['response_code'] == "ok":
return {"premium": True, "validuntil": float(res['vip_end']), "status": True}
else:
- self.logError(res)
+ self.log_error(res)
return {"status": False, "premium": False}
@@ -36,4 +36,4 @@ class MegaDebridEu(Account):
get={'action': 'connectUser', 'login': user, 'password': data['password']}, req=req)
res = json_loads(jsonResponse)
if res['response_code'] != "ok":
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/MegaRapidCz.py b/module/plugins/accounts/MegaRapidCz.py
index af23b7bf3..c8650ed8e 100644
--- a/module/plugins/accounts/MegaRapidCz.py
+++ b/module/plugins/accounts/MegaRapidCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class MegaRapidCz(Account):
__name__ = "MegaRapidCz"
__type__ = "account"
- __version__ = "0.36"
+ __version__ = "0.37"
__description__ = """MegaRapid.cz account plugin"""
__license__ = "GPLv3"
@@ -24,12 +24,12 @@ class MegaRapidCz(Account):
TRAFFIC_LEFT_PATTERN = r'<tr><td>Kredit</td><td>(.*?) GiB'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
htmll = self.load("http://megarapid.cz/mujucet/", req=req)
m = re.search(self.LIMITDL_PATTERN, htmll)
if m:
- data = self.getAccountData(user)
+ data = self.get_account_data(user)
data['options']['limitDL'] = [int(m.group(1))]
m = re.search(self.VALID_UNTIL_PATTERN, htmll)
diff --git a/module/plugins/accounts/MegaRapidoNet.py b/module/plugins/accounts/MegaRapidoNet.py
index de1c775c7..ddb7e090a 100644
--- a/module/plugins/accounts/MegaRapidoNet.py
+++ b/module/plugins/accounts/MegaRapidoNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class MegaRapidoNet(Account):
__name__ = "MegaRapidoNet"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """MegaRapido.net account plugin"""
__license__ = "GPLv3"
@@ -20,7 +20,7 @@ class MegaRapidoNet(Account):
USER_ID_PATTERN = r'<\s*?div[^>]*?class\s*?=\s*?["\']checkbox_compartilhar["\'].*?>.*?<\s*?input[^>]*?name\s*?=\s*?["\']usar["\'].*?>.*?<\s*?input[^>]*?name\s*?=\s*?["\']user["\'][^>]*?value\s*?=\s*?["\'](.*?)\s*?["\']'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
premium = False
@@ -29,7 +29,7 @@ class MegaRapidoNet(Account):
validuntil = re.search(self.VALID_UNTIL_PATTERN, html)
if validuntil:
- #hier weitermachen!!! (mÌssen umbedingt die zeit richtig machen damit! (sollte aber möglich))
+ # hier weitermachen!!! (mÌssen umbedingt die zeit richtig machen damit! (sollte aber möglich))
validuntil = time.time() + int(validuntil.group(1)) * 24 * 3600 + int(validuntil.group(2)) * 3600 + int(validuntil.group(3)) * 60 + int(validuntil.group(4))
trafficleft = -1
premium = True
@@ -47,7 +47,7 @@ class MegaRapidoNet(Account):
html = self.load("http://megarapido.net/gerador", req=req)
if "sair" not in html.lower():
- self.wrongPassword()
+ self.wrong_password()
else:
m = re.search(self.USER_ID_PATTERN, html)
if m:
diff --git a/module/plugins/accounts/MegasharesCom.py b/module/plugins/accounts/MegasharesCom.py
index af0987ed3..3aa26692c 100644
--- a/module/plugins/accounts/MegasharesCom.py
+++ b/module/plugins/accounts/MegasharesCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class MegasharesCom(Account):
__name__ = "MegasharesCom"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """Megashares.com account plugin"""
__license__ = "GPLv3"
@@ -19,8 +19,8 @@ class MegasharesCom(Account):
VALID_UNTIL_PATTERN = r'<p class="premium_info_box">Period Ends: (\w{3} \d{1,2}, \d{4})</p>'
- def loadAccountInfo(self, user, req):
- #self.relogin(user)
+ def load_account_info(self, user, req):
+ # self.relogin(user)
html = self.load("http://d01.megashares.com/myms.php", req=req)
premium = False if '>Premium Upgrade<' in html else True
@@ -28,10 +28,10 @@ class MegasharesCom(Account):
validuntil = trafficleft = -1
try:
timestr = re.search(self.VALID_UNTIL_PATTERN, html).group(1)
- self.logDebug(timestr)
+ self.log_debug(timestr)
validuntil = time.mktime(time.strptime(timestr, "%b %d, %Y"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
return {"validuntil": validuntil, "trafficleft": -1, "premium": premium}
@@ -44,4 +44,4 @@ class MegasharesCom(Account):
"mymspassword" : data['password']}, req=req)
if not '<span class="b ml">%s</span>' % user in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/MovReelCom.py b/module/plugins/accounts/MovReelCom.py
index 6128cddc8..885204615 100644
--- a/module/plugins/accounts/MovReelCom.py
+++ b/module/plugins/accounts/MovReelCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class MovReelCom(XFSAccount):
__name__ = "MovReelCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Movreel.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/MultihostersCom.py b/module/plugins/accounts/MultihostersCom.py
index e98f17b2d..65c6ea778 100644
--- a/module/plugins/accounts/MultihostersCom.py
+++ b/module/plugins/accounts/MultihostersCom.py
@@ -6,7 +6,7 @@ from module.plugins.accounts.ZeveraCom import ZeveraCom
class MultihostersCom(ZeveraCom):
__name__ = "MultihostersCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Multihosters.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/MultishareCz.py b/module/plugins/accounts/MultishareCz.py
index be947f7f2..ddb605ac7 100644
--- a/module/plugins/accounts/MultishareCz.py
+++ b/module/plugins/accounts/MultishareCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class MultishareCz(Account):
__name__ = "MultishareCz"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Multishare.cz account plugin"""
__license__ = "GPLv3"
@@ -19,12 +19,12 @@ class MultishareCz(Account):
ACCOUNT_INFO_PATTERN = r'<input type="hidden" id="(u_ID|u_hash)" name=".+?" value="(.+?)">'
- def loadAccountInfo(self, user, req):
- #self.relogin(user)
+ def load_account_info(self, user, req):
+ # self.relogin(user)
html = self.load("http://www.multishare.cz/profil/", req=req)
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
- trafficleft = self.parseTraffic(m.group('S') + m.group('U')) if m else 0
+ trafficleft = self.parse_traffic(m.group('S') + m.group('U')) if m else 0
self.premium = True if trafficleft else False
html = self.load("http://www.multishare.cz/", req=req)
@@ -40,4 +40,4 @@ class MultishareCz(Account):
"jmeno": user}, req=req)
if '<div class="akce-chyba akce">' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/MyfastfileCom.py b/module/plugins/accounts/MyfastfileCom.py
index 258c99346..aa2dde191 100644
--- a/module/plugins/accounts/MyfastfileCom.py
+++ b/module/plugins/accounts/MyfastfileCom.py
@@ -9,19 +9,19 @@ from module.plugins.internal.Account import Account
class MyfastfileCom(Account):
__name__ = "MyfastfileCom"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """Myfastfile.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
if 'days_left' in self.json_data:
validuntil = time.time() + self.json_data['days_left'] * 24 * 60 * 60
return {"premium": True, "validuntil": validuntil, "trafficleft": -1}
else:
- self.logError(_("Unable to get account information"))
+ self.log_error(_("Unable to get account information"))
def login(self, user, data, req):
@@ -29,9 +29,9 @@ class MyfastfileCom(Account):
html = self.load("https://myfastfile.com/api.php",
get={"user": user, "pass": data['password']}, req=req)
- self.logDebug("JSON data: " + html)
+ self.log_debug("JSON data: " + html)
self.json_data = json_loads(html)
if self.json_data['status'] != 'ok':
- self.logError(_('Invalid login. The password to use is the API-Password you find in your "My Account" page'))
- self.wrongPassword()
+ self.log_error(_('Invalid login. The password to use is the API-Password you find in your "My Account" page'))
+ self.wrong_password()
diff --git a/module/plugins/accounts/NitroflareCom.py b/module/plugins/accounts/NitroflareCom.py
index cc2f4e232..c17f0b8b4 100644
--- a/module/plugins/accounts/NitroflareCom.py
+++ b/module/plugins/accounts/NitroflareCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class NitroflareCom(Account):
__name__ = "NitroflareCom"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """Nitroflare.com account plugin"""
__license__ = "GPLv3"
@@ -23,7 +23,7 @@ class NitroflareCom(Account):
TOKEN_PATTERN = r'name="token" value="(.+?)"'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = -1
trafficleft = None
premium = False
@@ -34,16 +34,16 @@ class NitroflareCom(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1).strip()
- self.logDebug("Time Left: " + expiredate)
+ self.log_debug("Time Left: " + expiredate)
try:
validuntil = sum(int(v) * {'day': 24 * 3600, 'hour': 3600, 'minute': 60}[u.lower()] for v, u in
re.findall(r'(\d+)\s*(day|hour|minute)', expiredate, re.I))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
- self.logDebug("Valid until: %s" % validuntil)
+ self.log_debug("Valid until: %s" % validuntil)
if validuntil:
validuntil += time.time()
@@ -54,12 +54,12 @@ class NitroflareCom(Account):
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
try:
- trafficleft = self.parseTraffic(str(max(0, 50 - float(m.group(1)))) + " GB")
+ trafficleft = self.parse_traffic(str(max(0, 50 - float(m.group(1)))) + " GB")
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
- self.logDebug("TRAFFIC_LEFT_PATTERN not found")
+ self.log_debug("TRAFFIC_LEFT_PATTERN not found")
return {'validuntil' : validuntil,
'trafficleft': trafficleft,
@@ -78,4 +78,4 @@ class NitroflareCom(Account):
'token' : token}, req=req)
if re.search(self.LOGIN_FAIL_PATTERN, html):
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/NoPremiumPl.py b/module/plugins/accounts/NoPremiumPl.py
index 01060250b..6f82f3c97 100644
--- a/module/plugins/accounts/NoPremiumPl.py
+++ b/module/plugins/accounts/NoPremiumPl.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Account import Account
class NoPremiumPl(Account):
__name__ = "NoPremiumPl"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = "NoPremium.pl account plugin"
__license__ = "GPLv3"
@@ -31,10 +31,10 @@ class NoPremiumPl(Account):
_pwd = None
- def loadAccountInfo(self, name, req):
+ def load_account_info(self, name, req):
self._req = req
try:
- result = json_loads(self.runAuthQuery())
+ result = json_loads(self.run_auth_query())
except Exception:
#@TODO: return or let it be thrown?
return
@@ -59,23 +59,23 @@ class NoPremiumPl(Account):
self._req = req
try:
- response = json_loads(self.runAuthQuery())
+ response = json_loads(self.run_auth_query())
except Exception:
- self.wrongPassword()
+ self.wrong_password()
if "errno" in response.keys():
- self.wrongPassword()
+ self.wrong_password()
data['usr'] = self._usr
data['pwd'] = self._pwd
- def createAuthQuery(self):
+ def create_auth_query(self):
query = self.API_QUERY
query['username'] = self._usr
query['password'] = self._pwd
return query
- def runAuthQuery(self):
- return self._self.load(self.API_URL, post=self.createAuthQuery(), req=req)
+ def run_auth_query(self):
+ return self._self.load(self.API_URL, post=self.create_auth_query(), req=req)
diff --git a/module/plugins/accounts/NosuploadCom.py b/module/plugins/accounts/NosuploadCom.py
index e523ee2f4..9fb1a6484 100644
--- a/module/plugins/accounts/NosuploadCom.py
+++ b/module/plugins/accounts/NosuploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class NosuploadCom(XFSAccount):
__name__ = "NosuploadCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Nosupload.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/NovafileCom.py b/module/plugins/accounts/NovafileCom.py
index ab61bf0fc..077312c9d 100644
--- a/module/plugins/accounts/NovafileCom.py
+++ b/module/plugins/accounts/NovafileCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class NovafileCom(XFSAccount):
__name__ = "NovafileCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Novafile.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/NowVideoSx.py b/module/plugins/accounts/NowVideoSx.py
index 81267d413..e679367d6 100644
--- a/module/plugins/accounts/NowVideoSx.py
+++ b/module/plugins/accounts/NowVideoSx.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class NowVideoSx(Account):
__name__ = "NowVideoSx"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """NowVideo.at account plugin"""
__license__ = "GPLv3"
@@ -19,7 +19,7 @@ class NowVideoSx(Account):
VALID_UNTIL_PATTERN = r'>Your premium membership expires on: (.+?)<'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = -1
premium = None
@@ -29,13 +29,13 @@ class NowVideoSx(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1).strip()
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
try:
validuntil = time.mktime(time.strptime(expiredate, "%Y-%b-%d"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
if validuntil > time.mktime(time.gmtime()):
@@ -52,4 +52,4 @@ class NowVideoSx(Account):
post={'user': user, 'pass': data['password']}, req=req)
if re.search(r'>Log In<', html):
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/OboomCom.py b/module/plugins/accounts/OboomCom.py
index 96ef51f1e..958613e9e 100644
--- a/module/plugins/accounts/OboomCom.py
+++ b/module/plugins/accounts/OboomCom.py
@@ -23,31 +23,31 @@ from module.plugins.internal.Account import Account
class OboomCom(Account):
__name__ = "OboomCom"
__type__ = "account"
- __version__ = "0.25"
+ __version__ = "0.26"
__description__ = """Oboom.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("stanley", "stanley.foerster@gmail.com")]
- def loadAccountData(self, user, req):
- passwd = self.getAccountData(user)['password']
+ def load_account_data(self, user, req):
+ passwd = self.get_account_data(user)['password']
salt = passwd[::-1]
pbkdf2 = PBKDF2(passwd, salt, 1000).hexread(16)
result = json_loads(self.load("https://www.oboom.com/1/login", get={"auth": user, "pass": pbkdf2}), req=req)
if not result[0] == 200:
- self.logWarning(_("Failed to log in: %s") % result[1])
- self.wrongPassword()
+ self.log_warning(_("Failed to log in: %s") % result[1])
+ self.wrong_password()
return result[1]
- def loadAccountInfo(self, name, req):
- accountData = self.loadAccountData(name, req)
+ def load_account_info(self, name, req):
+ account_data = self.load_account_data(name, req)
- userData = accountData['user']
+ userData = account_data['user']
if userData['premium'] == "null":
premium = False
@@ -64,7 +64,7 @@ class OboomCom(Account):
trafficLeft = traffic['current'] / 1024 #@TODO: Remove `/ 1024` in 0.4.10
maxTraffic = traffic['max'] / 1024 #@TODO: Remove `/ 1024` in 0.4.10
- session = accountData['session']
+ session = account_data['session']
return {'premium' : premium,
'validuntil' : validUntil,
@@ -74,4 +74,4 @@ class OboomCom(Account):
def login(self, user, data, req):
- self.loadAccountData(user, req)
+ self.load_account_data(user, req)
diff --git a/module/plugins/accounts/OneFichierCom.py b/module/plugins/accounts/OneFichierCom.py
index 3a345bd9f..12be92c3e 100644
--- a/module/plugins/accounts/OneFichierCom.py
+++ b/module/plugins/accounts/OneFichierCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account
class OneFichierCom(Account):
__name__ = "OneFichierCom"
__type__ = "account"
- __version__ = "0.13"
+ __version__ = "0.14"
__description__ = """1fichier.com account plugin"""
__license__ = "GPLv3"
@@ -21,7 +21,7 @@ class OneFichierCom(Account):
VALID_UNTIL_PATTERN = r'Your Premium Status will end the (\d+/\d+/\d+)'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = -1
premium = None
@@ -31,12 +31,12 @@ class OneFichierCom(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1)
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
try:
validuntil = time.mktime(time.strptime(expiredate, "%d/%m/%Y"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
premium = True
@@ -54,4 +54,4 @@ class OneFichierCom(Account):
'valider': "Send"}, req=req)
if '>Invalid email address' in html or '>Invalid password' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/OverLoadMe.py b/module/plugins/accounts/OverLoadMe.py
index 898c122cd..d47a579f2 100644
--- a/module/plugins/accounts/OverLoadMe.py
+++ b/module/plugins/accounts/OverLoadMe.py
@@ -7,21 +7,21 @@ from module.common.json_layer import json_loads
class OverLoadMe(Account):
__name__ = "OverLoadMe"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """Over-Load.me account plugin"""
__license__ = "GPLv3"
__authors__ = [("marley", "marley@over-load.me")]
- def loadAccountInfo(self, user, req):
- data = self.getAccountData(user)
+ def load_account_info(self, user, req):
+ data = self.get_account_data(user)
html = self.load("https://api.over-load.me/account.php",
get={'user': user,
'auth': data['password']}, req=req).strip()
data = json_loads(html)
- self.logDebug(data)
+ self.log_debug(data)
#: Check for premium
if data['membership'] == "Free":
@@ -38,4 +38,4 @@ class OverLoadMe(Account):
data = json_loads(jsondata)
if data['err'] == 1:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/PremiumTo.py b/module/plugins/accounts/PremiumTo.py
index fb99cfd59..639ea1529 100644
--- a/module/plugins/accounts/PremiumTo.py
+++ b/module/plugins/accounts/PremiumTo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account
class PremiumTo(Account):
__name__ = "PremiumTo"
__type__ = "account"
- __version__ = "0.10"
+ __version__ = "0.11"
__description__ = """Premium.to account plugin"""
__license__ = "GPLv3"
@@ -15,7 +15,7 @@ class PremiumTo(Account):
("stickell", "l.stickell@yahoo.it")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
traffic = self.load("http://premium.to/api/straffic.php", #@TODO: Revert to `https` in 0.4.10
get={'username': self.username, 'password': self.password}, req=req)
@@ -33,4 +33,4 @@ class PremiumTo(Account):
get={'username': user, 'password': self.password}, req=req)
if "wrong username" in authcode:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/PremiumizeMe.py b/module/plugins/accounts/PremiumizeMe.py
index d7f0b7391..a2a6c139c 100644
--- a/module/plugins/accounts/PremiumizeMe.py
+++ b/module/plugins/accounts/PremiumizeMe.py
@@ -7,17 +7,17 @@ from module.plugins.internal.Account import Account
class PremiumizeMe(Account):
__name__ = "PremiumizeMe"
__type__ = "account"
- __version__ = "0.18"
+ __version__ = "0.19"
__description__ = """Premiumize.me account plugin"""
__license__ = "GPLv3"
__authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
#: Get user data from premiumize.me
- status = self.getAccountStatus(user, req)
- self.logDebug(status)
+ status = self.get_account_status(user, req)
+ self.log_debug(status)
#: Parse account info
account_info = {"validuntil": float(status['result']['expires']),
@@ -31,18 +31,18 @@ class PremiumizeMe(Account):
def login(self, user, data, req):
#: Get user data from premiumize.me
- status = self.getAccountStatus(user, req)
+ status = self.get_account_status(user, req)
#: Check if user and password are valid
if status['status'] != 200:
- self.wrongPassword()
+ self.wrong_password()
- def getAccountStatus(self, user, req):
+ def get_account_status(self, user, req):
#: Use premiumize.me API v1 (see https://secure.premiumize.me/?show=api)
#: to retrieve account info and return the parsed json answer
answer = self.load("http://api.premiumize.me/pm-api/v1.php", #@TODO: Revert to `https` in 0.4.10
get={'method' : "accountstatus",
'params[login]': user,
- 'params[pass]' : self.getAccountData(user)['password']})
+ 'params[pass]' : self.get_account_data(user)['password']})
return json_loads(answer)
diff --git a/module/plugins/accounts/PutdriveCom.py b/module/plugins/accounts/PutdriveCom.py
index 4f2fadbcc..61f59fd75 100644
--- a/module/plugins/accounts/PutdriveCom.py
+++ b/module/plugins/accounts/PutdriveCom.py
@@ -6,7 +6,7 @@ from module.plugins.accounts.ZeveraCom import ZeveraCom
class PutdriveCom(ZeveraCom):
__name__ = "PutdriveCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Putdrive.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/QuickshareCz.py b/module/plugins/accounts/QuickshareCz.py
index c3cfe6f6f..17d3bfce8 100644
--- a/module/plugins/accounts/QuickshareCz.py
+++ b/module/plugins/accounts/QuickshareCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class QuickshareCz(Account):
__name__ = "QuickshareCz"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """Quickshare.cz account plugin"""
__license__ = "GPLv3"
@@ -18,12 +18,12 @@ class QuickshareCz(Account):
TRAFFIC_LEFT_PATTERN = r'Stav kreditu: <strong>(.+?)</strong>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.quickshare.cz/premium", req=req)
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
- trafficleft = self.parseTraffic(m.group(1))
+ trafficleft = self.parse_traffic(m.group(1))
premium = True if trafficleft else False
else:
trafficleft = None
@@ -39,4 +39,4 @@ class QuickshareCz(Account):
"jmeno": user}, req=req)
if u'>TakovÜ uşivatel neexistuje.<' in html or u'>Špatné heslo.<' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/RPNetBiz.py b/module/plugins/accounts/RPNetBiz.py
index be456f2d7..d103e918d 100644
--- a/module/plugins/accounts/RPNetBiz.py
+++ b/module/plugins/accounts/RPNetBiz.py
@@ -7,16 +7,16 @@ from module.common.json_layer import json_loads
class RPNetBiz(Account):
__name__ = "RPNetBiz"
__type__ = "account"
- __version__ = "0.13"
+ __version__ = "0.14"
__description__ = """RPNet.biz account plugin"""
__license__ = "GPLv3"
__authors__ = [("Dman", "dmanugm@gmail.com")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
#: Get account information from rpnet.biz
- res = self.getAccountStatus(user, req)
+ res = self.get_account_status(user, req)
try:
if res['accountInfo']['isPremium']:
#: Parse account info. Change the trafficleft later to support per host info.
@@ -26,7 +26,7 @@ class RPNetBiz(Account):
account_info = {"validuntil": None, "trafficleft": None, "premium": False}
except KeyError:
- #handle wrong password exception
+ # handle wrong password exception
account_info = {"validuntil": None, "trafficleft": None, "premium": False}
return account_info
@@ -34,18 +34,18 @@ class RPNetBiz(Account):
def login(self, user, data, req):
#: Get account information from rpnet.biz
- res = self.getAccountStatus(user, req)
+ res = self.get_account_status(user, req)
#: If we have an error in the res, we have wrong login information
if 'error' in res:
- self.wrongPassword()
+ self.wrong_password()
- def getAccountStatus(self, user, req):
+ def get_account_status(self, user, req):
#: Using the rpnet API, check if valid premium account
res = self.load("https://premium.rpnet.biz/client_api.php",
- get={"username": user, "password": self.getAccountData(user)['password'],
+ get={"username": user, "password": self.get_account_data(user)['password'],
"action": "showAccountInformation"})
- self.logDebug("JSON data: %s" % res)
+ self.log_debug("JSON data: %s" % res)
return json_loads(res)
diff --git a/module/plugins/accounts/RapideoPl.py b/module/plugins/accounts/RapideoPl.py
index f5ce2e2b1..1f4140846 100644
--- a/module/plugins/accounts/RapideoPl.py
+++ b/module/plugins/accounts/RapideoPl.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Account import Account
class RapideoPl(Account):
__name__ = "RapideoPl"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = "Rapideo.pl account plugin"
__license__ = "GPLv3"
@@ -31,10 +31,10 @@ class RapideoPl(Account):
_pwd = None
- def loadAccountInfo(self, name, req):
+ def load_account_info(self, name, req):
self._req = req
try:
- result = json_loads(self.runAuthQuery())
+ result = json_loads(self.run_auth_query())
except Exception:
#@TODO: return or let it be thrown?
return
@@ -59,23 +59,23 @@ class RapideoPl(Account):
self._req = req
try:
- response = json_loads(self.runAuthQuery())
+ response = json_loads(self.run_auth_query())
except Exception:
- self.wrongPassword()
+ self.wrong_password()
if "errno" in response.keys():
- self.wrongPassword()
+ self.wrong_password()
data['usr'] = self._usr
data['pwd'] = self._pwd
- def createAuthQuery(self):
+ def create_auth_query(self):
query = self.API_QUERY
query['username'] = self._usr
query['password'] = self._pwd
return query
- def runAuthQuery(self):
- return self._self.load(self.API_URL, post=self.createAuthQuery(), req=req)
+ def run_auth_query(self):
+ return self._self.load(self.API_URL, post=self.create_auth_query(), req=req)
diff --git a/module/plugins/accounts/RapidfileshareNet.py b/module/plugins/accounts/RapidfileshareNet.py
index c0dd7eaee..8758e799b 100644
--- a/module/plugins/accounts/RapidfileshareNet.py
+++ b/module/plugins/accounts/RapidfileshareNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class RapidfileshareNet(XFSAccount):
__name__ = "RapidfileshareNet"
__type__ = "account"
- __version__ = "0.05"
+ __version__ = "0.06"
__description__ = """Rapidfileshare.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/RapidgatorNet.py b/module/plugins/accounts/RapidgatorNet.py
index c14490dd5..c17765e12 100644
--- a/module/plugins/accounts/RapidgatorNet.py
+++ b/module/plugins/accounts/RapidgatorNet.py
@@ -7,7 +7,7 @@ from module.common.json_layer import json_loads
class RapidgatorNet(Account):
__name__ = "RapidgatorNet"
__type__ = "account"
- __version__ = "0.10"
+ __version__ = "0.11"
__description__ = """Rapidgator.net account plugin"""
__license__ = "GPLv3"
@@ -17,34 +17,34 @@ class RapidgatorNet(Account):
API_URL = "http://rapidgator.net/api/user"
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
premium = False
sid = None
try:
- sid = self.getAccountData(user).get('sid', None)
+ sid = self.get_account_data(user).get('sid', None)
assert sid
html = self.load("%s/info" % self.API_URL, get={'sid': sid}, req=req)
- self.logDebug("API:USERINFO", html)
+ self.log_debug("API:USERINFO", html)
json = json_loads(html)
if json['response_status'] == 200:
if "reset_in" in json['response']:
- self.scheduleRefresh(user, json['response']['reset_in'])
+ self.schedule_refresh(user, json['response']['reset_in'])
validuntil = json['response']['expire_date']
trafficleft = float(json['response']['traffic_left']) / 1024 #@TODO: Remove `/ 1024` in 0.4.10
premium = True
else:
- self.logError(json['response_details'])
+ self.log_error(json['response_details'])
except Exception, e:
- self.logError(e)
+ self.log_error(e)
return {'validuntil' : validuntil,
'trafficleft': trafficleft,
@@ -56,7 +56,7 @@ class RapidgatorNet(Account):
try:
html = self.load('%s/login' % self.API_URL, post={"username": user, "password": data['password']}, req=req)
- self.logDebug("API:LOGIN", html)
+ self.log_debug("API:LOGIN", html)
json = json_loads(html)
@@ -64,9 +64,9 @@ class RapidgatorNet(Account):
data['sid'] = str(json['response']['session_id'])
return
else:
- self.logError(json['response_details'])
+ self.log_error(json['response_details'])
except Exception, e:
- self.logError(e)
+ self.log_error(e)
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/RapiduNet.py b/module/plugins/accounts/RapiduNet.py
index 5e74e18bb..256b612a1 100644
--- a/module/plugins/accounts/RapiduNet.py
+++ b/module/plugins/accounts/RapiduNet.py
@@ -10,7 +10,7 @@ from module.common.json_layer import json_loads
class RapiduNet(Account):
__name__ = "RapiduNet"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Rapidu.net account plugin"""
__license__ = "GPLv3"
@@ -25,7 +25,7 @@ class RapiduNet(Account):
TRAFFIC_LEFT_PATTERN = r'class="tipsyS"><b>(.+?)<'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = -1
premium = False
@@ -41,7 +41,7 @@ class RapiduNet(Account):
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
- trafficleft = self.parseTraffic(m.group(1))
+ trafficleft = self.parse_traffic(m.group(1))
return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium}
@@ -59,7 +59,7 @@ class RapiduNet(Account):
'pass' : data['password'],
'remember': "1"}, req=req))
- self.logDebug(json)
+ self.log_debug(json)
if not json['message'] == "success":
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/RarefileNet.py b/module/plugins/accounts/RarefileNet.py
index 577a6c8f6..e8be7925b 100644
--- a/module/plugins/accounts/RarefileNet.py
+++ b/module/plugins/accounts/RarefileNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class RarefileNet(XFSAccount):
__name__ = "RarefileNet"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """RareFile.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/RealdebridCom.py b/module/plugins/accounts/RealdebridCom.py
index 83fdc5dbc..f16ebed27 100644
--- a/module/plugins/accounts/RealdebridCom.py
+++ b/module/plugins/accounts/RealdebridCom.py
@@ -8,14 +8,14 @@ from module.plugins.internal.Account import Account
class RealdebridCom(Account):
__name__ = "RealdebridCom"
__type__ = "account"
- __version__ = "0.47"
+ __version__ = "0.48"
__description__ = """Real-Debrid.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
if self.pin_code:
return
@@ -36,8 +36,8 @@ class RealdebridCom(Account):
get={"user": user, "pass": data['password']}, req=req)
if "Your login informations are incorrect" in html:
- self.wrongPassword()
+ self.wrong_password()
elif "PIN Code required" in html:
- self.logWarning(_("PIN code required. Please login to https://real-debrid.com using the PIN or disable the double authentication in your control panel on https://real-debrid.com"))
+ self.log_warning(_("PIN code required. Please login to https://real-debrid.com using the PIN or disable the double authentication in your control panel on https://real-debrid.com"))
self.pin_code = True
diff --git a/module/plugins/accounts/RehostTo.py b/module/plugins/accounts/RehostTo.py
index 5f0c1253e..43c0cb029 100644
--- a/module/plugins/accounts/RehostTo.py
+++ b/module/plugins/accounts/RehostTo.py
@@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account
class RehostTo(Account):
__name__ = "RehostTo"
__type__ = "account"
- __version__ = "0.17"
+ __version__ = "0.18"
__description__ = """Rehost.to account plugin"""
__license__ = "GPLv3"
__authors__ = [("RaNaN", "RaNaN@pyload.org")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
trafficleft = None
validuntil = -1
@@ -21,7 +21,7 @@ class RehostTo(Account):
html = self.load("https://rehost.to/api.php",
get={'cmd' : "login", 'user': user,
- 'pass': self.getAccountData(user)['password']})
+ 'pass': self.get_account_data(user)['password']})
try:
session = html.split(",")[1].split("=")[1]
@@ -29,12 +29,12 @@ class RehostTo(Account):
get={'cmd': "get_premium_credits", 'long_ses': session}, req=req)
if html.strip() == "0,0" or "ERROR" in html:
- self.logDebug(html)
+ self.log_debug(html)
else:
traffic, valid = html.split(",")
premium = True
- trafficleft = self.parseTraffic(traffic + "MB")
+ trafficleft = self.parse_traffic(traffic + "MB")
validuntil = float(valid)
finally:
@@ -49,5 +49,5 @@ class RehostTo(Account):
get={'cmd': "login", 'user': user, 'pass': data['password']}, req=req)
if "ERROR" in html:
- self.logDebug(html)
- self.wrongPassword()
+ self.log_debug(html)
+ self.wrong_password()
diff --git a/module/plugins/accounts/RyushareCom.py b/module/plugins/accounts/RyushareCom.py
index 8c56ff20f..de627a8f7 100644
--- a/module/plugins/accounts/RyushareCom.py
+++ b/module/plugins/accounts/RyushareCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class RyushareCom(XFSAccount):
__name__ = "RyushareCom"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Ryushare.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/SafesharingEu.py b/module/plugins/accounts/SafesharingEu.py
index 2e58d33b3..a42c06ac6 100644
--- a/module/plugins/accounts/SafesharingEu.py
+++ b/module/plugins/accounts/SafesharingEu.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class SafesharingEu(XFSAccount):
__name__ = "SafesharingEu"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Safesharing.eu account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/SecureUploadEu.py b/module/plugins/accounts/SecureUploadEu.py
index b335c94da..3686e07e2 100644
--- a/module/plugins/accounts/SecureUploadEu.py
+++ b/module/plugins/accounts/SecureUploadEu.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class SecureUploadEu(XFSAccount):
__name__ = "SecureUploadEu"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """SecureUpload.eu account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/SendmywayCom.py b/module/plugins/accounts/SendmywayCom.py
index 4fcbe0b7a..eb5c3b033 100644
--- a/module/plugins/accounts/SendmywayCom.py
+++ b/module/plugins/accounts/SendmywayCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class SendmywayCom(XFSAccount):
__name__ = "SendmywayCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Sendmyway.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/SharebeastCom.py b/module/plugins/accounts/SharebeastCom.py
index d233ffd37..68b76fda8 100644
--- a/module/plugins/accounts/SharebeastCom.py
+++ b/module/plugins/accounts/SharebeastCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class SharebeastCom(XFSAccount):
__name__ = "SharebeastCom"
__type__ = "account"
- __version__ = "0.01"
+ __version__ = "0.02"
__description__ = """Sharebeast.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py
index 5a3359496..56c1d08f2 100644
--- a/module/plugins/accounts/ShareonlineBiz.py
+++ b/module/plugins/accounts/ShareonlineBiz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class ShareonlineBiz(Account):
__name__ = "ShareonlineBiz"
__type__ = "account"
- __version__ = "0.34"
+ __version__ = "0.35"
__description__ = """Share-online.biz account plugin"""
__license__ = "GPLv3"
@@ -20,10 +20,10 @@ class ShareonlineBiz(Account):
get={'q' : "userdetails",
'aux' : "traffic",
'username': user,
- 'password': self.getAccountData(user)['password']})
+ 'password': self.get_account_data(user)['password']})
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = None
trafficleft = -1
@@ -35,7 +35,7 @@ class ShareonlineBiz(Account):
key, value = line.split("=")
api[key] = value
- self.logDebug(api)
+ self.log_debug(api)
if api['a'].lower() != "not_available":
req.cj.setCookie("share-online.biz", 'a', api['a'])
@@ -64,5 +64,5 @@ class ShareonlineBiz(Account):
html = self.api_response(user, req)
err = re.search(r'\*\*(.+?)\*\*', html)
if err:
- self.logError(err.group(1).strip())
- self.wrongPassword()
+ self.log_error(err.group(1).strip())
+ self.wrong_password()
diff --git a/module/plugins/accounts/SimplyPremiumCom.py b/module/plugins/accounts/SimplyPremiumCom.py
index 053f2c33b..e030a7dd8 100644
--- a/module/plugins/accounts/SimplyPremiumCom.py
+++ b/module/plugins/accounts/SimplyPremiumCom.py
@@ -7,21 +7,21 @@ from module.plugins.internal.Account import Account
class SimplyPremiumCom(Account):
__name__ = "SimplyPremiumCom"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Simply-Premium.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("EvolutionClip", "evolutionclip@live.de")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium = False
validuntil = -1
trafficleft = None
json_data = self.load('http://www.simply-premium.com/api/user.php?format=json', req=req)
- self.logDebug("JSON data: %s" % json_data)
+ self.log_debug("JSON data: %s" % json_data)
json_data = json_loads(json_data)
@@ -44,4 +44,4 @@ class SimplyPremiumCom(Account):
post={'key': user} if not data['password'] else {'login_name': user, 'login_pass': data['password']}, req=req)
if 'logout' not in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/SimplydebridCom.py b/module/plugins/accounts/SimplydebridCom.py
index e9fda682b..14e33e827 100644
--- a/module/plugins/accounts/SimplydebridCom.py
+++ b/module/plugins/accounts/SimplydebridCom.py
@@ -8,14 +8,14 @@ from module.plugins.internal.Account import Account
class SimplydebridCom(Account):
__name__ = "SimplydebridCom"
__type__ = "account"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Simply-Debrid.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
get_data = {'login': 2, 'u': self.loginname, 'p': self.password}
res = self.load("http://simply-debrid.com/api.php", get=get_data, req=req)
data = [x.strip() for x in res.split(";")]
@@ -32,4 +32,4 @@ class SimplydebridCom(Account):
res = self.load("https://simply-debrid.com/api.php", get=get_data, req=req)
if res != "02: loggin success":
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/SmoozedCom.py b/module/plugins/accounts/SmoozedCom.py
index 0b0d7ed74..853963c4a 100644
--- a/module/plugins/accounts/SmoozedCom.py
+++ b/module/plugins/accounts/SmoozedCom.py
@@ -26,17 +26,17 @@ from module.plugins.internal.Account import Account
class SmoozedCom(Account):
__name__ = "SmoozedCom"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Smoozed.com account plugin"""
__license__ = "GPLv3"
__authors__ = [("", "")]
- def loadAccountInfo(self, user, req):
- status = self.getAccountStatus(user, req)
+ def load_account_info(self, user, req):
+ status = self.get_account_status(user, req)
- self.logDebug(status)
+ self.log_debug(status)
if status['state'] != 'ok':
info = {'validuntil' : None,
@@ -62,15 +62,15 @@ class SmoozedCom(Account):
def login(self, user, data, req):
#: Get user data from premiumize.me
- status = self.getAccountStatus(user, req)
+ status = self.get_account_status(user, req)
#: Check if user and password are valid
if status['state'] != 'ok':
- self.wrongPassword()
+ self.wrong_password()
- def getAccountStatus(self, user, req):
- password = self.getAccountData(user)['password']
+ def get_account_status(self, user, req):
+ password = self.get_account_data(user)['password']
salt = hashlib.sha256(password).hexdigest()
encrypted = PBKDF2(password, salt, iterations=1000).hexread(32)
diff --git a/module/plugins/accounts/StreamcloudEu.py b/module/plugins/accounts/StreamcloudEu.py
index aa1eafcbd..46b1e97de 100644
--- a/module/plugins/accounts/StreamcloudEu.py
+++ b/module/plugins/accounts/StreamcloudEu.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class StreamcloudEu(XFSAccount):
__name__ = "StreamcloudEu"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Streamcloud.eu account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/TurbobitNet.py b/module/plugins/accounts/TurbobitNet.py
index 7e3bd628f..518ed66f8 100644
--- a/module/plugins/accounts/TurbobitNet.py
+++ b/module/plugins/accounts/TurbobitNet.py
@@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account
class TurbobitNet(Account):
__name__ = "TurbobitNet"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """TurbobitNet account plugin"""
__license__ = "GPLv3"
__authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://turbobit.net", req=req)
m = re.search(r'<u>Turbo Access</u> to ([\d.]+)', html)
@@ -39,4 +39,4 @@ class TurbobitNet(Account):
"user[submit]": "Login"}, req=req)
if not '<div class="menu-item user-name">' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/TusfilesNet.py b/module/plugins/accounts/TusfilesNet.py
index 18e7b0b57..bada60fe0 100644
--- a/module/plugins/accounts/TusfilesNet.py
+++ b/module/plugins/accounts/TusfilesNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class TusfilesNet(XFSAccount):
__name__ = "TusfilesNet"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """Tusfile.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/UlozTo.py b/module/plugins/accounts/UlozTo.py
index 3763e2a16..e83124b81 100644
--- a/module/plugins/accounts/UlozTo.py
+++ b/module/plugins/accounts/UlozTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class UlozTo(Account):
__name__ = "UlozTo"
__type__ = "account"
- __version__ = "0.11"
+ __version__ = "0.12"
__description__ = """Uloz.to account plugin"""
__license__ = "GPLv3"
@@ -20,7 +20,7 @@ class UlozTo(Account):
TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a .*?title=".+?GB = ([\d.]+) MB"'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.ulozto.net/", req=req)
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
@@ -45,4 +45,4 @@ class UlozTo(Account):
'remember': "on"})
if '<div class="flash error">' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/UploadableCh.py b/module/plugins/accounts/UploadableCh.py
index 2936a2a6b..e196620af 100644
--- a/module/plugins/accounts/UploadableCh.py
+++ b/module/plugins/accounts/UploadableCh.py
@@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account
class UploadableCh(Account):
__name__ = "UploadableCh"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__description__ = """Uploadable.ch account plugin"""
__license__ = "GPLv3"
__authors__ = [("Sasch", "gsasch@gmail.com")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("http://www.uploadable.ch/login.php", req=req)
premium = '<a href="/logout.php"' in html
@@ -30,4 +30,4 @@ class UploadableCh(Account):
'action__login': "normalLogin"}, req=req)
if "Login failed" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/UploadcCom.py b/module/plugins/accounts/UploadcCom.py
index d1e1a2ead..7ccfe481d 100644
--- a/module/plugins/accounts/UploadcCom.py
+++ b/module/plugins/accounts/UploadcCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class UploadcCom(XFSAccount):
__name__ = "UploadcCom"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Uploadc.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py
index 55bddabae..6a9270153 100644
--- a/module/plugins/accounts/UploadedTo.py
+++ b/module/plugins/accounts/UploadedTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class UploadedTo(Account):
__name__ = "UploadedTo"
__type__ = "account"
- __version__ = "0.31"
+ __version__ = "0.32"
__description__ = """Uploaded.to account plugin"""
__license__ = "GPLv3"
@@ -21,7 +21,7 @@ class UploadedTo(Account):
TRAFFIC_LEFT_PATTERN = r'<b class="cB">(?P<S>[\d.,]+) (?P<U>[\w^_]+)'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
premium = None
@@ -53,7 +53,7 @@ class UploadedTo(Account):
trafficleft = float(size.replace(',', '.')) / 1024
trafficleft *= 1 << 40
else:
- trafficleft = self.parseTraffic(size + unit)
+ trafficleft = self.parse_traffic(size + unit)
return {'validuntil' : validuntil,
'trafficleft': trafficleft,
@@ -67,4 +67,4 @@ class UploadedTo(Account):
post={'id': user, 'pw': data['password'], '_': ""}, req=req)
if '"err"' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/UploadheroCom.py b/module/plugins/accounts/UploadheroCom.py
index 598b7ac57..b72102300 100644
--- a/module/plugins/accounts/UploadheroCom.py
+++ b/module/plugins/accounts/UploadheroCom.py
@@ -10,17 +10,17 @@ from module.plugins.internal.Account import Account
class UploadheroCom(Account):
__name__ = "UploadheroCom"
__type__ = "account"
- __version__ = "0.22"
+ __version__ = "0.23"
__description__ = """Uploadhero.co account plugin"""
__license__ = "GPLv3"
__authors__ = [("mcmyst", "mcmyst@hotmail.fr")]
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
premium_pattern = re.compile('Il vous reste <span class="bleu">(\d+)</span> jours premium')
- data = self.getAccountData(user)
+ data = self.get_account_data(user)
html = self.load("http://uploadhero.co/my-account", req=req)
if premium_pattern.search(html):
@@ -38,4 +38,4 @@ class UploadheroCom(Account):
post={"pseudo_login": user, "password_login": data['password']}, req=req)
if "mot de passe invalide" in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/UploadingCom.py b/module/plugins/accounts/UploadingCom.py
index c701fb8fa..5052266a4 100644
--- a/module/plugins/accounts/UploadingCom.py
+++ b/module/plugins/accounts/UploadingCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Plugin import set_cookies
class UploadingCom(Account):
__name__ = "UploadingCom"
__type__ = "account"
- __version__ = "0.13"
+ __version__ = "0.14"
__description__ = """Uploading.com account plugin"""
__license__ = "GPLv3"
@@ -21,7 +21,7 @@ class UploadingCom(Account):
VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
premium = None
@@ -33,13 +33,13 @@ class UploadingCom(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1).strip()
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
try:
validuntil = time.mktime(time.strptime(expiredate, "%b %d, %Y"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
if validuntil > time.mktime(time.gmtime()):
diff --git a/module/plugins/accounts/UptoboxCom.py b/module/plugins/accounts/UptoboxCom.py
index c40dbd6e6..fcadce927 100644
--- a/module/plugins/accounts/UptoboxCom.py
+++ b/module/plugins/accounts/UptoboxCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class UptoboxCom(XFSAccount):
__name__ = "UptoboxCom"
__type__ = "account"
- __version__ = "0.08"
+ __version__ = "0.09"
__description__ = """DDLStorage.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/VidPlayNet.py b/module/plugins/accounts/VidPlayNet.py
index 5bfc24963..01e16bb78 100644
--- a/module/plugins/accounts/VidPlayNet.py
+++ b/module/plugins/accounts/VidPlayNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class VidPlayNet(XFSAccount):
__name__ = "VidPlayNet"
__type__ = "account"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """VidPlay.net account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/WebshareCz.py b/module/plugins/accounts/WebshareCz.py
index b1ecef3fd..c8711838f 100644
--- a/module/plugins/accounts/WebshareCz.py
+++ b/module/plugins/accounts/WebshareCz.py
@@ -12,7 +12,7 @@ from module.plugins.internal.Account import Account
class WebshareCz(Account):
__name__ = "WebshareCz"
__type__ = "account"
- __version__ = "0.09"
+ __version__ = "0.10"
__description__ = """Webshare.cz account plugin"""
__license__ = "GPLv3"
@@ -24,17 +24,17 @@ class WebshareCz(Account):
TRAFFIC_LEFT_PATTERN = r'<bytes>(.+)</bytes>'
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
html = self.load("https://webshare.cz/api/user_data/",
- post={'wst': self.getAccountData(user).get('wst', None)})
+ post={'wst': self.get_account_data(user).get('wst', None)})
- self.logDebug("Response: " + html)
+ self.log_debug("Response: " + html)
expiredate = re.search(self.VALID_UNTIL_PATTERN, html).group(1)
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
validuntil = time.mktime(time.strptime(expiredate, "%Y-%m-%d %H:%M:%S"))
- trafficleft = self.parseTraffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1))
+ trafficleft = self.parse_traffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1))
premium = validuntil > time.time()
return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium}
@@ -46,7 +46,7 @@ class WebshareCz(Account):
'wst' : ""}, req=req)
if "<status>OK</status>" not in salt:
- self.wrongPassword()
+ self.wrong_password()
salt = re.search('<salt>(.+)</salt>', salt).group(1)
password = hashlib.sha1(md5_crypt.encrypt(data['password'], salt=salt)).hexdigest()
@@ -60,6 +60,6 @@ class WebshareCz(Account):
'wst' : ""}, req=req)
if "<status>OK</status>" not in login:
- self.wrongPassword()
+ self.wrong_password()
data['wst'] = re.search('<token>(.+)</token>', login).group(1)
diff --git a/module/plugins/accounts/WorldbytezCom.py b/module/plugins/accounts/WorldbytezCom.py
index a90dbea56..6ad4f2543 100644
--- a/module/plugins/accounts/WorldbytezCom.py
+++ b/module/plugins/accounts/WorldbytezCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class WorldbytezCom(XFSAccount):
__name__ = "WorldbytezCom"
__type__ = "account"
- __version__ = "0.01"
+ __version__ = "0.02"
__description__ = """Worldbytez.com account plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/accounts/XFileSharingPro.py b/module/plugins/accounts/XFileSharingPro.py
index 8dc7f3a30..e47e8fafc 100644
--- a/module/plugins/accounts/XFileSharingPro.py
+++ b/module/plugins/accounts/XFileSharingPro.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class XFileSharingPro(XFSAccount):
__name__ = "XFileSharingPro"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """XFileSharingPro multi-purpose account plugin"""
__license__ = "GPLv3"
@@ -21,8 +21,8 @@ class XFileSharingPro(XFSAccount):
return super(XFileSharingPro, self).init()
- def loadAccountInfo(self, user, req):
- return super(XFileSharingPro if self.HOSTER_DOMAIN else XFSAccount, self).loadAccountInfo(user, req)
+ def load_account_info(self, user, req):
+ return super(XFileSharingPro if self.HOSTER_DOMAIN else XFSAccount, self).load_account_info(user, req)
def login(self, user, data, req):
diff --git a/module/plugins/accounts/YibaishiwuCom.py b/module/plugins/accounts/YibaishiwuCom.py
index 9d1d1d38f..fad22b4c6 100644
--- a/module/plugins/accounts/YibaishiwuCom.py
+++ b/module/plugins/accounts/YibaishiwuCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class YibaishiwuCom(Account):
__name__ = "YibaishiwuCom"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """115.com account plugin"""
__license__ = "GPLv3"
@@ -18,8 +18,8 @@ class YibaishiwuCom(Account):
ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}'
- def loadAccountInfo(self, user, req):
- #self.relogin(user)
+ def load_account_info(self, user, req):
+ # self.relogin(user)
html = self.load("http://115.com/", req=req)
m = re.search(self.ACCOUNT_INFO_PATTERN, html, re.S)
@@ -36,4 +36,4 @@ class YibaishiwuCom(Account):
"login[passwd]": data['password']}, req=req)
if not 'var USER_PERMISSION = {' in html:
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/accounts/ZeveraCom.py b/module/plugins/accounts/ZeveraCom.py
index 0ca7fba45..bec59be46 100644
--- a/module/plugins/accounts/ZeveraCom.py
+++ b/module/plugins/accounts/ZeveraCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account
class ZeveraCom(Account):
__name__ = "ZeveraCom"
__type__ = "account"
- __version__ = "0.27"
+ __version__ = "0.28"
__description__ = """Zevera.com account plugin"""
__license__ = "GPLv3"
@@ -26,13 +26,13 @@ class ZeveraCom(Account):
def init(self):
if not self.HOSTER_DOMAIN:
- self.logError(_("Missing HOSTER_DOMAIN"))
+ self.log_error(_("Missing HOSTER_DOMAIN"))
if not hasattr(self, "API_URL"):
self.API_URL = "http://api.%s/jDownloader.ashx" % (self.HOSTER_DOMAIN or "")
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
premium = False
@@ -52,7 +52,7 @@ class ZeveraCom(Account):
self.password = data['password']
if self.api_response(req) == "No trafic":
- self.wrongPassword()
+ self.wrong_password()
def api_response(self, req, just_header=False, **kwargs):
@@ -66,7 +66,7 @@ class ZeveraCom(Account):
get=get_data,
just_header=just_header, req=req)
- self.logDebug(res)
+ self.log_debug(res)
if ':' in res:
if not just_header:
diff --git a/module/plugins/captcha/CircleCaptcha.py b/module/plugins/captcha/CircleCaptcha.py
index c7a3a3fe9..54bd5a975 100644
--- a/module/plugins/captcha/CircleCaptcha.py
+++ b/module/plugins/captcha/CircleCaptcha.py
@@ -29,7 +29,7 @@ class ImageSequence:
class CircleCaptcha(OCR):
__name__ = "CircleCaptcha"
__type__ = "ocr"
- __version__ = "1.01"
+ __version__ = "1.02"
__description__ = """Circle captcha ocr plugin"""
__license__ = "GPLv3"
@@ -43,7 +43,7 @@ class CircleCaptcha(OCR):
BLACKCOLOR = 5
- def cleanImage(self, im, pix):
+ def clean_image(self, im, pix):
cleandeep = 1
imageheight = xrange(1, int(im.size[1]))
@@ -114,7 +114,7 @@ class CircleCaptcha(OCR):
#: return -1
- def findFirstPixelX(self, im, pix, curx, cury, color = -1, ExitWithBlack = False):
+ def find_first_pixel_x(self, im, pix, curx, cury, color = -1, ExitWithBlack = False):
imageheight = xrange(1, int(im.size[1]))
imagewidth = xrange(curx+1, int(im.size[0]))
jump = True
@@ -145,7 +145,7 @@ class CircleCaptcha(OCR):
return newx
- def findLastPixelX(self, im, pix, curx, cury, color = -1, ExitWithBlack = False):
+ def find_last_pixel_x(self, im, pix, curx, cury, color = -1, ExitWithBlack = False):
imageheight = xrange(1, int(im.size[1]))
imagewidth = xrange(curx+1, int(im.size[0]))
newx = (-1,-1)
@@ -173,7 +173,7 @@ class CircleCaptcha(OCR):
return newx
- def findLastPixelY(self, im, pix, curx, cury, DownToUp, color = -1, ExitWithBlack = False):
+ def find_last_pixel_y(self, im, pix, curx, cury, DownToUp, color = -1, ExitWithBlack = False):
if DownToUp == False:
imageheight = xrange(int(cury)+1, int(im.size[1])-1)
else:
@@ -204,7 +204,7 @@ class CircleCaptcha(OCR):
return newy
- def findCircle(self, pix, x1, y1, x2, y2, x3, y3):
+ def find_circle(self, pix, x1, y1, x2, y2, x3, y3):
#: trasposizione coordinate
#: A(0, 0) B(x2-x1, y2-y1) C(x3-x1, y3-y1)
#: x**2+y**2+ax+bx+c=0
@@ -232,7 +232,7 @@ class CircleCaptcha(OCR):
return cx, cy, r
- def verifyCircleNew(self, im, pix, c):
+ def verify_circle_new(self, im, pix, c):
"""
This is the MAIN function to recognize the circle
returns:
@@ -269,21 +269,21 @@ class CircleCaptcha(OCR):
return -2
cardinalpoints = 0
- if self.verifyPoint(im, pix, c[0] + c[2],c[1],True) == 1:
+ if self.verify_point(im, pix, c[0] + c[2],c[1],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0] + c[2],c[1],False) == -1:
+ if self.verify_point(im, pix, c[0] + c[2],c[1],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0] - c[2],c[1],True) == 1:
+ if self.verify_point(im, pix, c[0] - c[2],c[1],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0] - c[2],c[1],False) == -1:
+ if self.verify_point(im, pix, c[0] - c[2],c[1],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0],c[1] + c[2],True) == 1:
+ if self.verify_point(im, pix, c[0],c[1] + c[2],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0],c[1] + c[2],False) == -1:
+ if self.verify_point(im, pix, c[0],c[1] + c[2],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0],c[1] - c[2],True) == 1:
+ if self.verify_point(im, pix, c[0],c[1] - c[2],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0],c[1] - c[2],False) == -1:
+ if self.verify_point(im, pix, c[0],c[1] - c[2],False) == -1:
return -2
if cardinalpoints < 3:
return -1
@@ -294,26 +294,26 @@ class CircleCaptcha(OCR):
y2= int(round(c[1]+ math.sqrt(c[2]**2-(c[0]-x)**2)))
howmany = howmany + 2
- if self.verifyPoint(im, pix, x, y, exactfind) == 0:
+ if self.verify_point(im, pix, x, y, exactfind) == 0:
missing = missing + 1
missinglist.append((x, y))
else:
pointsofcircle.append((x, y))
- if self.verifyPoint(im, pix, x, y, False) == -1:
+ if self.verify_point(im, pix, x, y, False) == -1:
return -2
- if self.verifyPoint(im, pix, x, y2, exactfind) == 0:
+ if self.verify_point(im, pix, x, y2, exactfind) == 0:
missing = missing + 1
missinglist.append((x, y2))
else:
pointsofcircle.append((x, y2))
- if self.verifyPoint(im, pix, x, y2, False) == -1:
+ if self.verify_point(im, pix, x, y2, False) == -1:
return -2
- def verifyCircle(self, im, pix, c):
+ def verify_circle(self, im, pix, c):
"""
This is the MAIN function to recognize the circle
returns:
@@ -350,21 +350,21 @@ class CircleCaptcha(OCR):
return -2
cardinalpoints = 0
- if self.verifyPoint(im, pix, c[0] + c[2],c[1],True) == 1:
+ if self.verify_point(im, pix, c[0] + c[2],c[1],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0] + c[2],c[1],False) == -1:
+ if self.verify_point(im, pix, c[0] + c[2],c[1],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0] - c[2],c[1],True) == 1:
+ if self.verify_point(im, pix, c[0] - c[2],c[1],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0] - c[2],c[1],False) == -1:
+ if self.verify_point(im, pix, c[0] - c[2],c[1],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0],c[1] + c[2],True) == 1:
+ if self.verify_point(im, pix, c[0],c[1] + c[2],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0],c[1] + c[2],False) == -1:
+ if self.verify_point(im, pix, c[0],c[1] + c[2],False) == -1:
return -2
- if self.verifyPoint(im, pix, c[0],c[1] - c[2],True) == 1:
+ if self.verify_point(im, pix, c[0],c[1] - c[2],True) == 1:
cardinalpoints = cardinalpoints + 1
- if self.verifyPoint(im, pix, c[0],c[1] - c[2],False) == -1:
+ if self.verify_point(im, pix, c[0],c[1] - c[2],False) == -1:
return -2
if cardinalpoints < 3:
return -1
@@ -375,22 +375,22 @@ class CircleCaptcha(OCR):
y2= int(round(c[1]+ math.sqrt(c[2]**2-(c[0]-x)**2)))
howmany = howmany + 2
- if self.verifyPoint(im, pix, x, y, exactfind) == 0:
+ if self.verify_point(im, pix, x, y, exactfind) == 0:
missing = missing + 1
missinglist.append((x, y))
else:
pointsofcircle.append((x, y))
- if self.verifyPoint(im, pix, x, y, False) == -1:
+ if self.verify_point(im, pix, x, y, False) == -1:
return -2
- if self.verifyPoint(im, pix, x, y2, exactfind) == 0:
+ if self.verify_point(im, pix, x, y2, exactfind) == 0:
missing = missing + 1
missinglist.append((x, y2))
else:
pointsofcircle.append((x, y2))
- if self.verifyPoint(im, pix, x, y2, False) == -1:
+ if self.verify_point(im, pix, x, y2, False) == -1:
return -2
for y in imageheight:
@@ -399,39 +399,39 @@ class CircleCaptcha(OCR):
x2= int(round(c[0]+ math.sqrt(c[2]**2-(c[1]-y)**2)))
howmany = howmany + 2
- if self.verifyPoint(im, pix, x, y, exactfind) == 0:
+ if self.verify_point(im, pix, x, y, exactfind) == 0:
missing = missing + 1
missinglist.append((x, y))
else:
pointsofcircle.append((x, y))
- if self.verifyPoint(im, pix, x, y, False) == -1:
+ if self.verify_point(im, pix, x, y, False) == -1:
return -2
- if self.verifyPoint(im, pix, x2, y, exactfind) == 0:
+ if self.verify_point(im, pix, x2, y, exactfind) == 0:
missing = missing + 1
missinglist.append((x2, y))
else:
pointsofcircle.append((x2, y))
- if self.verifyPoint(im, pix, x2, y, exactfind) == -1:
+ if self.verify_point(im, pix, x2, y, exactfind) == -1:
return -2
for p in missinglist:
#: left and bottom
- if (self.verifyPoint(im, pix, p[0]-1, p[1],exactfind) == 1 and \
- self.verifyPoint(im, pix, p[0], p[1]+1, exactfind) == 1):
+ if (self.verify_point(im, pix, p[0]-1, p[1],exactfind) == 1 and \
+ self.verify_point(im, pix, p[0], p[1]+1, exactfind) == 1):
missing = missing - 1
- elif (self.verifyPoint(im, pix, p[0]-1, p[1],exactfind) == 1 and \
- self.verifyPoint(im, pix, p[0], p[1]-1, exactfind) == 1):
+ elif (self.verify_point(im, pix, p[0]-1, p[1],exactfind) == 1 and \
+ self.verify_point(im, pix, p[0], p[1]-1, exactfind) == 1):
missing = missing - 1
#: right and bottom
- elif (self.verifyPoint(im, pix, p[0]+1, p[1],exactfind) == 1 and \
- self.verifyPoint(im, pix, p[0], p[1]+1, exactfind) == 1):
+ elif (self.verify_point(im, pix, p[0]+1, p[1],exactfind) == 1 and \
+ self.verify_point(im, pix, p[0], p[1]+1, exactfind) == 1):
missing = missing - 1
#: right and up
- elif (self.verifyPoint(im, pix, p[0]+1, p[1],exactfind) == 1 and \
- self.verifyPoint(im, pix, p[0], p[1]-1, exactfind) == 1):
+ elif (self.verify_point(im, pix, p[0]+1, p[1],exactfind) == 1 and \
+ self.verify_point(im, pix, p[0], p[1]-1, exactfind) == 1):
missing = missing - 1
if (p[0], p[1]+1) in missinglist or \
@@ -442,7 +442,7 @@ class CircleCaptcha(OCR):
(p[0]-1, p[1]+1) in missinglist or \
(p[0]+1, p[1]-1) in missinglist or \
(p[0]-1, p[1]-1) in missinglist or \
- self.verifyPoint(im, pix, p[0], p[1],False) == 1:
+ self.verify_point(im, pix, p[0], p[1],False) == 1:
missingconsecutive = missingconsecutive + 1
# else:
# pix[p[0], p[1]] = 0
@@ -498,7 +498,7 @@ class CircleCaptcha(OCR):
return 1
- def verifyPoint(self, im, pix, x, y, exact, color = -1):
+ def verify_point(self, im, pix, x, y, exact, color = -1):
#: Verify point
result = 0
@@ -569,7 +569,7 @@ class CircleCaptcha(OCR):
pixcopy = imdebug.load()
#: Clean image for powerfull search
- self.cleanImage(im, pix)
+ self.clean_image(im, pix)
im.save("cleaned" + str(iDebugSaveFile) + ".png", "png")
found = set()
@@ -581,7 +581,7 @@ class CircleCaptcha(OCR):
curcolor = -1
for k in xrange(1, 100):
findnewcircle = False
- retval = self.findFirstPixelX(im, pix, x1, y1, -1, False)
+ retval = self.find_first_pixel_x(im, pix, x1, y1, -1, False)
x1 = retval[0]
curcolor = retval[1]
if x1 == -2:
@@ -599,7 +599,7 @@ class CircleCaptcha(OCR):
x2 = x1
y2 = y1
for i in xrange(1, 100):
- retval = self.findLastPixelX(im, pix, x2, y2, -1, True)
+ retval = self.find_last_pixel_x(im, pix, x2, y2, -1, True)
x2 = retval[0]
if x1 == -2:
findnewcircle = True
@@ -622,7 +622,7 @@ class CircleCaptcha(OCR):
x3 = math.floor(x2 - ((x2 - x1) / 2))
y3 = y1
for j in xrange(1, 50):
- retval = self.findLastPixelY(im, pix, x3, y3, True if invert == 1 else False, -1, True)
+ retval = self.find_last_pixel_y(im, pix, x3, y3, True if invert == 1 else False, -1, True)
#: print (x3, y3, retval[0],invert)
y3 = retval[0]
if y3 == -2:
@@ -642,14 +642,14 @@ class CircleCaptcha(OCR):
if self._DEBUG == True: pixcopy[x3, y3] = 85
#: found 3 pixel. try circle
- c = self.findCircle(pix, x1, y1, x2, y2, x3, y3)
+ c = self.find_circle(pix, x1, y1, x2, y2, x3, y3)
if c[0] + c[2] >= im.size[0] or c[1] + c[2] >= im.size[1] or c[0] - c[2] <= 0 or c[1] - c[2] <= 0:
continue
if self._DEBUG == True: pixcopy[c[0],c[1]] = 0
#: (x-r, y-r, x+r, y+r)
- verified = self.verifyCircle(im, pix, c)
+ verified = self.verify_circle(im, pix, c)
if verified == -1:
verified = -1
diff --git a/module/plugins/captcha/GigasizeCom.py b/module/plugins/captcha/GigasizeCom.py
index 66b848e3f..83fc393e4 100644
--- a/module/plugins/captcha/GigasizeCom.py
+++ b/module/plugins/captcha/GigasizeCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR
class GigasizeCom(OCR):
__name__ = "GigasizeCom"
__type__ = "ocr"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Gigasize.com ocr plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/captcha/LinksaveIn.py b/module/plugins/captcha/LinksaveIn.py
index 7aeffbe79..cf00acf15 100644
--- a/module/plugins/captcha/LinksaveIn.py
+++ b/module/plugins/captcha/LinksaveIn.py
@@ -14,7 +14,7 @@ from module.plugins.internal.OCR import OCR
class LinksaveIn(OCR):
__name__ = "LinksaveIn"
__type__ = "ocr"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Linksave.in ocr plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/captcha/NetloadIn.py b/module/plugins/captcha/NetloadIn.py
index 2f1477f5d..16902128d 100644
--- a/module/plugins/captcha/NetloadIn.py
+++ b/module/plugins/captcha/NetloadIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR
class NetloadIn(OCR):
__name__ = "NetloadIn"
__type__ = "ocr"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Netload.in ocr plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/captcha/ShareonlineBiz.py b/module/plugins/captcha/ShareonlineBiz.py
index a95435444..a8c1a3abe 100644
--- a/module/plugins/captcha/ShareonlineBiz.py
+++ b/module/plugins/captcha/ShareonlineBiz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR
class ShareonlineBiz(OCR):
__name__ = "ShareonlineBiz"
__type__ = "ocr"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = """Shareonline.biz ocr plugin"""
__license__ = "GPLv3"
@@ -23,8 +23,8 @@ class ShareonlineBiz(OCR):
self.image = self.image.resize((160, 50))
self.pixels = self.image.load()
self.threshold(1.85)
- #self.eval_black_white(240)
- #self.derotate_by_average()
+ # self.eval_black_white(240)
+ # self.derotate_by_average()
letters = self.split_captcha_letters()
@@ -36,4 +36,4 @@ class ShareonlineBiz(OCR):
return final
- #tesseract at 60%
+ # tesseract at 60%
diff --git a/module/plugins/container/CCF.py b/module/plugins/container/CCF.py
index 314a76eb5..ca77f0c00 100644
--- a/module/plugins/container/CCF.py
+++ b/module/plugins/container/CCF.py
@@ -13,7 +13,7 @@ from module.utils import fs_encode, save_join as fs_join
class CCF(Container):
__name__ = "CCF"
__type__ = "container"
- __version__ = "0.24"
+ __version__ = "0.25"
__pattern__ = r'.+\.ccf$'
diff --git a/module/plugins/container/DLC.py b/module/plugins/container/DLC.py
index 31037fd45..7d71165b3 100644
--- a/module/plugins/container/DLC.py
+++ b/module/plugins/container/DLC.py
@@ -14,7 +14,7 @@ from module.utils import decode, fs_encode
class DLC(Container):
__name__ = "DLC"
__type__ = "container"
- __version__ = "0.25"
+ __version__ = "0.26"
__pattern__ = r'.+\.dlc$'
@@ -53,20 +53,20 @@ class DLC(Container):
self.data = AES.new(key, AES.MODE_CBC, iv).decrypt(dlc_data).decode('base64')
self.packages = [(name or pyfile.name, links, name or pyfile.name) \
- for name, links in self.getPackages()]
+ for name, links in self.get_packages()]
- def getPackages(self):
+ def get_packages(self):
root = xml.dom.minidom.parseString(self.data).documentElement
content = root.getElementsByTagName("content")[0]
- return self.parsePackages(content)
+ return self.parse_packages(content)
- def parsePackages(self, startNode):
- return [(decode(node.getAttribute("name")).decode('base64'), self.parseLinks(node)) \
+ def parse_packages(self, startNode):
+ return [(decode(node.getAttribute("name")).decode('base64'), self.parse_links(node)) \
for node in startNode.getElementsByTagName("package")]
- def parseLinks(self, startNode):
+ def parse_links(self, startNode):
return [node.getElementsByTagName("url")[0].firstChild.data.decode('base64') \
for node in startNode.getElementsByTagName("file")]
diff --git a/module/plugins/container/RSDF.py b/module/plugins/container/RSDF.py
index e3a88c8ae..06b5c065f 100644
--- a/module/plugins/container/RSDF.py
+++ b/module/plugins/container/RSDF.py
@@ -14,7 +14,7 @@ from module.utils import fs_encode
class RSDF(Container):
__name__ = "RSDF"
__type__ = "container"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'.+\.rsdf$'
diff --git a/module/plugins/container/TXT.py b/module/plugins/container/TXT.py
index 76cf41f60..b7355d80c 100644
--- a/module/plugins/container/TXT.py
+++ b/module/plugins/container/TXT.py
@@ -9,7 +9,7 @@ from module.utils import fs_encode
class TXT(Container):
__name__ = "TXT"
__type__ = "container"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'.+\.(txt|text)$'
__config__ = [("flush" , "bool" , "Flush list after adding", False ),
@@ -23,7 +23,7 @@ class TXT(Container):
def decrypt(self, pyfile):
try:
- encoding = codecs.lookup(self.getConfig('encoding')).name
+ encoding = codecs.lookup(self.get_config('encoding')).name
except Exception:
encoding = "utf-8"
@@ -57,13 +57,13 @@ class TXT(Container):
if not value:
packages.pop(key, None)
- if self.getConfig('flush'):
+ if self.get_config('flush'):
try:
txt = open(fs_filename, 'wb')
txt.close()
except IOError:
- self.logWarning(_("Failed to flush list"))
+ self.log_warning(_("Failed to flush list"))
for name, links in packages.iteritems():
self.packages.append((name, links, name))
diff --git a/module/plugins/crypter/BitshareComFolder.py b/module/plugins/crypter/BitshareComFolder.py
index f0dd9e570..85ada3379 100644
--- a/module/plugins/crypter/BitshareComFolder.py
+++ b/module/plugins/crypter/BitshareComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class BitshareComFolder(SimpleCrypter):
__name__ = "BitshareComFolder"
__type__ = "crypter"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/C1NeonCom.py b/module/plugins/crypter/C1NeonCom.py
index 9b6093081..4b577de2e 100644
--- a/module/plugins/crypter/C1NeonCom.py
+++ b/module/plugins/crypter/C1NeonCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class C1NeonCom(DeadCrypter):
__name__ = "C1NeonCom"
__type__ = "crypter"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?c1neon\.com/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/ChipDe.py b/module/plugins/crypter/ChipDe.py
index 6938a2225..64a3b4f25 100644
--- a/module/plugins/crypter/ChipDe.py
+++ b/module/plugins/crypter/ChipDe.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class ChipDe(Crypter):
__name__ = "ChipDe"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?chip\.de/video/.+\.html'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -26,4 +26,4 @@ class ChipDe(Crypter):
self.fail(_("Failed to find the URL"))
else:
self.urls = [f.group(1)]
- self.logDebug("The file URL is %s" % self.urls[0])
+ self.log_debug("The file URL is %s" % self.urls[0])
diff --git a/module/plugins/crypter/CloudzillaToFolder.py b/module/plugins/crypter/CloudzillaToFolder.py
index 96d7245f1..93bf14716 100644
--- a/module/plugins/crypter/CloudzillaToFolder.py
+++ b/module/plugins/crypter/CloudzillaToFolder.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class CloudzillaToFolder(SimpleHoster):
__name__ = "CloudzillaToFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/folder/(?P<ID>[\w^_]+)'
@@ -26,10 +26,10 @@ class CloudzillaToFolder(SimpleHoster):
PASSWORD_PATTERN = r'<div id="pwd_protected">'
- def checkErrors(self):
+ def check_errors(self):
m = re.search(self.PASSWORD_PATTERN, self.html)
if m:
- self.html = self.load(self.pyfile.url, get={'key': self.getPassword()})
+ self.html = self.load(self.pyfile.url, get={'key': self.get_password()})
if re.search(self.PASSWORD_PATTERN, self.html):
self.retry(reason="Wrong password")
diff --git a/module/plugins/crypter/CrockoComFolder.py b/module/plugins/crypter/CrockoComFolder.py
index f56cc449a..913eba821 100644
--- a/module/plugins/crypter/CrockoComFolder.py
+++ b/module/plugins/crypter/CrockoComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class CrockoComFolder(SimpleCrypter):
__name__ = "CrockoComFolder"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?crocko\.com/f/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/CryptItCom.py b/module/plugins/crypter/CryptItCom.py
index 1c9e841b7..55658c563 100644
--- a/module/plugins/crypter/CryptItCom.py
+++ b/module/plugins/crypter/CryptItCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class CryptItCom(DeadCrypter):
__name__ = "CryptItCom"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?crypt-it\.com/(s|e|d|c)/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/CzshareComFolder.py b/module/plugins/crypter/CzshareComFolder.py
index 5b5e6fd27..446440ac4 100644
--- a/module/plugins/crypter/CzshareComFolder.py
+++ b/module/plugins/crypter/CzshareComFolder.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class CzshareComFolder(Crypter):
__name__ = "CzshareComFolder"
__type__ = "crypter"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/folders/.+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/DailymotionComFolder.py b/module/plugins/crypter/DailymotionComFolder.py
index e839cf9df..93ff6a0a4 100644
--- a/module/plugins/crypter/DailymotionComFolder.py
+++ b/module/plugins/crypter/DailymotionComFolder.py
@@ -11,7 +11,7 @@ from module.utils import save_join as fs_join
class DailymotionComFolder(Crypter):
__name__ = "DailymotionComFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?dailymotion\.com/((playlists/)?(?P<TYPE>playlist|user)/)?(?P<ID>[\w^_]+)(?(TYPE)|#)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -28,7 +28,7 @@ class DailymotionComFolder(Crypter):
return json_loads(html)
- def getPlaylistInfo(self, id):
+ def get_playlist_info(self, id):
ref = "playlist/" + id
req = {"fields": "name,owner.screenname"}
playlist = self.api_response(ref, req)
@@ -41,7 +41,7 @@ class DailymotionComFolder(Crypter):
return name, owner
- def _getPlaylists(self, user_id, page=1):
+ def _get_playlists(self, user_id, page=1):
ref = "user/%s/playlists" % user_id
req = {"fields": "id", "page": page, "limit": 100}
user = self.api_response(ref, req)
@@ -53,15 +53,15 @@ class DailymotionComFolder(Crypter):
yield playlist['id']
if user['has_more']:
- for item in self._getPlaylists(user_id, page + 1):
+ for item in self._get_playlists(user_id, page + 1):
yield item
- def getPlaylists(self, user_id):
- return [(id,) + self.getPlaylistInfo(id) for id in self._getPlaylists(user_id)]
+ def get_playlists(self, user_id):
+ return [(id,) + self.get_playlist_info(id) for id in self._get_playlists(user_id)]
- def _getVideos(self, id, page=1):
+ def _get_videos(self, id, page=1):
ref = "playlist/%s/videos" % id
req = {"fields": "url", "page": page, "limit": 100}
playlist = self.api_response(ref, req)
@@ -73,12 +73,12 @@ class DailymotionComFolder(Crypter):
yield video['url']
if playlist['has_more']:
- for item in self._getVideos(id, page + 1):
+ for item in self._get_videos(id, page + 1):
yield item
- def getVideos(self, playlist_id):
- return list(self._getVideos(playlist_id))[::-1]
+ def get_videos(self, playlist_id):
+ return list(self._get_videos(playlist_id))[::-1]
def decrypt(self, pyfile):
@@ -87,19 +87,19 @@ class DailymotionComFolder(Crypter):
m_type = m.group('TYPE')
if m_type == "playlist":
- self.logDebug("Url recognized as Playlist")
- p_info = self.getPlaylistInfo(m_id)
+ self.log_debug("Url recognized as Playlist")
+ p_info = self.get_playlist_info(m_id)
playlists = [(m_id,) + p_info] if p_info else None
else:
- self.logDebug("Url recognized as Channel")
- playlists = self.getPlaylists(m_id)
- self.logDebug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id))
+ self.log_debug("Url recognized as Channel")
+ playlists = self.get_playlists(m_id)
+ self.log_debug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id))
if not playlists:
self.fail(_("No playlist available"))
for p_id, p_name, p_owner in playlists:
- p_videos = self.getVideos(p_id)
+ p_videos = self.get_videos(p_id)
p_folder = fs_join(self.core.config.get("general", "download_folder"), p_owner, p_name)
- self.logDebug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name))
+ self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name))
self.packages.append((p_name, p_videos, p_folder)) #: folder is NOT recognized by pyload 0.4.9!
diff --git a/module/plugins/crypter/DataHuFolder.py b/module/plugins/crypter/DataHuFolder.py
index 0b241bf66..9e228472d 100644
--- a/module/plugins/crypter/DataHuFolder.py
+++ b/module/plugins/crypter/DataHuFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class DataHuFolder(SimpleCrypter):
__name__ = "DataHuFolder"
__type__ = "crypter"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'http://(?:www\.)?data\.hu/dir/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -29,11 +29,11 @@ class DataHuFolder(SimpleCrypter):
super(DataHuFolder, self).prepare()
if u'K\xe9rlek add meg a jelsz\xf3t' in self.html: #: Password protected
- password = self.getPassword()
+ password = self.get_password()
if not password:
self.fail(_("Password required"))
- self.logDebug("The folder is password protected', 'Using password: " + password)
+ self.log_debug("The folder is password protected', 'Using password: " + password)
self.html = self.load(self.pyfile.url, post={'mappa_pass': password})
diff --git a/module/plugins/crypter/DdlstorageComFolder.py b/module/plugins/crypter/DdlstorageComFolder.py
index dc6ec1da5..9eb7bb997 100644
--- a/module/plugins/crypter/DdlstorageComFolder.py
+++ b/module/plugins/crypter/DdlstorageComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class DdlstorageComFolder(DeadCrypter):
__name__ = "DdlstorageComFolder"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?ddlstorage\.com/folder/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/DepositfilesComFolder.py b/module/plugins/crypter/DepositfilesComFolder.py
index 46ec265c3..3e283e1ee 100644
--- a/module/plugins/crypter/DepositfilesComFolder.py
+++ b/module/plugins/crypter/DepositfilesComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class DepositfilesComFolder(SimpleCrypter):
__name__ = "DepositfilesComFolder"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?depositfiles\.com/folders/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/Dereferer.py b/module/plugins/crypter/Dereferer.py
index 5c73b2622..88d9aab85 100644
--- a/module/plugins/crypter/Dereferer.py
+++ b/module/plugins/crypter/Dereferer.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter
class Dereferer(SimpleCrypter):
__name__ = "Dereferer"
__type__ = "crypter"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/.*?(?P<LINK>(?:ht|f)tps?://.+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -36,5 +36,5 @@ class Dereferer(SimpleCrypter):
self.HOSTER_NAME = "".join(part.capitalize() for part in re.split(r'(\.|\d+)', self.HOSTER_DOMAIN) if part != '.')
- def getLinks(self):
+ def get_links(self):
return [re.match(self.__pattern__, self.pyfile.url).group('LINK').strip()]
diff --git a/module/plugins/crypter/DevhostStFolder.py b/module/plugins/crypter/DevhostStFolder.py
index c9e809cae..2c3f9d46b 100644
--- a/module/plugins/crypter/DevhostStFolder.py
+++ b/module/plugins/crypter/DevhostStFolder.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class DevhostStFolder(SimpleCrypter):
__name__ = "DevhostStFolder"
__type__ = "crypter"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?d-h\.st/users/(?P<USER>\w+)(/\?fld_id=(?P<ID>\d+))?'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -29,11 +29,11 @@ class DevhostStFolder(SimpleCrypter):
OFFLINE_PATTERN = r'"/cHP">test\.png<'
- def checkNameSize(self, getinfo=True):
+ def check_name_size(self, getinfo=True):
if not self.info or getinfo:
- self.logDebug("File info (BEFORE): %s" % self.info)
- self.info.update(self.getInfo(self.pyfile.url, self.html))
- self.logDebug("File info (AFTER): %s" % self.info)
+ self.log_debug("File info (BEFORE): %s" % self.info)
+ self.info.update(self.get_info(self.pyfile.url, self.html))
+ self.log_debug("File info (AFTER): %s" % self.info)
try:
if self.info['pattern']['ID'] == "0":
@@ -49,7 +49,7 @@ class DevhostStFolder(SimpleCrypter):
self.pyfile.name = m.group(1)
except Exception, e:
- self.logDebug(e)
+ self.log_debug(e)
self.pyfile.name = self.info['pattern']['USER']
try:
@@ -58,7 +58,7 @@ class DevhostStFolder(SimpleCrypter):
except Exception:
pass
- self.logDebug("File name: %s" % self.pyfile.name,
+ self.log_debug("File name: %s" % self.pyfile.name,
"File folder: %s" % self.pyfile.name)
diff --git a/module/plugins/crypter/DlProtectCom.py b/module/plugins/crypter/DlProtectCom.py
index 6ced6a706..44cb881d4 100644
--- a/module/plugins/crypter/DlProtectCom.py
+++ b/module/plugins/crypter/DlProtectCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class DlProtectCom(SimpleCrypter):
__name__ = "DlProtectCom"
__type__ = "crypter"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'https?://(?:www\.)?dl-protect\.com/((en|fr)/)?\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -28,7 +28,7 @@ class DlProtectCom(SimpleCrypter):
OFFLINE_PATTERN = r'Unfortunately, the link you are looking for is not found'
- def getLinks(self):
+ def get_links(self):
#: Direct link with redirect
if not re.match(r"https?://(?:www\.)?dl-protect\.com/.+", self.req.http.lastEffectiveURL):
return [self.req.http.lastEffectiveURL]
@@ -48,12 +48,12 @@ class DlProtectCom(SimpleCrypter):
'submitform': "Decrypt+link"})
if "Password :" in self.html:
- post_req['pwd'] = self.getPassword()
+ post_req['pwd'] = self.get_password()
if "Security Code" in self.html:
m = re.search(r'/captcha\.php\?key=(.+?)"', self.html)
if m:
- captcha_code = self.decryptCaptcha("http://www.dl-protect.com/captcha.php?key=" + m.group(1), imgtype="gif")
+ captcha_code = self.decrypt_captcha("http://www.dl-protect.com/captcha.php?key=" + m.group(1), imgtype="gif")
post_req['secure'] = captcha_code
self.html = self.load(self.pyfile.url, post=post_req)
diff --git a/module/plugins/crypter/DuckCryptInfo.py b/module/plugins/crypter/DuckCryptInfo.py
index 631ed00b7..7541ac1a6 100644
--- a/module/plugins/crypter/DuckCryptInfo.py
+++ b/module/plugins/crypter/DuckCryptInfo.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter
class DuckCryptInfo(Crypter):
__name__ = "DuckCryptInfo"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?duckcrypt\.info/(folder|wait|link)/(\w+)/?(\w*)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -31,29 +31,29 @@ class DuckCryptInfo(Crypter):
if m is None:
self.fail(_("Weird error in link"))
if str(m.group(1)) == "link":
- self.handleLink(url)
+ self.handle_link(url)
else:
- self.handleFolder(m)
+ self.handle_folder(m)
- def handleFolder(self, m):
+ def handle_folder(self, m):
html = self.load("http://duckcrypt.info/ajax/auth.php?hash=" + str(m.group(2)))
m = re.match(self.__pattern__, html)
- self.logDebug("Redirectet to " + str(m.group(0)))
+ self.log_debug("Redirectet to " + str(m.group(0)))
html = self.load(str(m.group(0)))
soup = BeautifulSoup(html)
cryptlinks = soup.findAll("div", attrs={"class": "folderbox"})
- self.logDebug("Redirectet to " + str(cryptlinks))
+ self.log_debug("Redirectet to " + str(cryptlinks))
if not cryptlinks:
self.error(_("No link found"))
for clink in cryptlinks:
if clink.find("a"):
- self.handleLink(clink.find("a")['href'])
+ self.handle_link(clink.find("a")['href'])
- def handleLink(self, url):
+ def handle_link(self, url):
html = self.load(url)
soup = BeautifulSoup(html)
self.urls = [soup.find("iframe")['src']]
if not self.urls:
- self.logInfo(_("No link found"))
+ self.log_info(_("No link found"))
diff --git a/module/plugins/crypter/DuploadOrgFolder.py b/module/plugins/crypter/DuploadOrgFolder.py
index d505806b7..234e3cb3c 100644
--- a/module/plugins/crypter/DuploadOrgFolder.py
+++ b/module/plugins/crypter/DuploadOrgFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class DuploadOrgFolder(DeadCrypter):
__name__ = "DuploadOrgFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?dupload\.org/folder/\d+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/EasybytezComFolder.py b/module/plugins/crypter/EasybytezComFolder.py
index fdd3d4ff4..62322e330 100644
--- a/module/plugins/crypter/EasybytezComFolder.py
+++ b/module/plugins/crypter/EasybytezComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo
class EasybytezComFolder(XFSCrypter):
__name__ = "EasybytezComFolder"
__type__ = "crypter"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'http://(?:www\.)?easybytez\.com/users/\d+/\d+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/EmbeduploadCom.py b/module/plugins/crypter/EmbeduploadCom.py
index 3a830331f..6f98e6915 100644
--- a/module/plugins/crypter/EmbeduploadCom.py
+++ b/module/plugins/crypter/EmbeduploadCom.py
@@ -8,7 +8,7 @@ from module.network.HTTPRequest import BadHeader
class EmbeduploadCom(Crypter):
__name__ = "EmbeduploadCom"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?embedupload\.com/\?d=.+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True ),
@@ -30,25 +30,25 @@ class EmbeduploadCom(Crypter):
m = re.findall(self.LINK_PATTERN, self.html)
if m:
- prefered_set = set(self.getConfig('preferedHoster').split('|'))
+ prefered_set = set(self.get_config('preferedHoster').split('|'))
prefered_set = map(lambda s: s.lower().split('.')[0], prefered_set)
- self.logDebug("PF: %s" % prefered_set)
+ self.log_debug("PF: %s" % prefered_set)
tmp_links.extend(x[1] for x in m if x[0] in prefered_set)
- self.urls = self.getLocation(tmp_links)
+ self.urls = self.get_location(tmp_links)
if not self.urls:
- ignored_set = set(self.getConfig('ignoredHoster').split('|'))
+ ignored_set = set(self.get_config('ignoredHoster').split('|'))
ignored_set = map(lambda s: s.lower().split('.')[0], ignored_set)
- self.logDebug("IG: %s" % ignored_set)
+ self.log_debug("IG: %s" % ignored_set)
tmp_links.extend(x[1] for x in m if x[0] not in ignored_set)
- self.urls = self.getLocation(tmp_links)
+ self.urls = self.get_location(tmp_links)
- def getLocation(self, tmp_links):
+ def get_location(self, tmp_links):
new_links = []
for link in tmp_links:
try:
diff --git a/module/plugins/crypter/FilebeerInfoFolder.py b/module/plugins/crypter/FilebeerInfoFolder.py
index 5b401c555..8529f371d 100644
--- a/module/plugins/crypter/FilebeerInfoFolder.py
+++ b/module/plugins/crypter/FilebeerInfoFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class FilebeerInfoFolder(DeadCrypter):
__name__ = "FilebeerInfoFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?filebeer\.info/\d*~f\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/FilecloudIoFolder.py b/module/plugins/crypter/FilecloudIoFolder.py
index f900f4910..6eb26abb3 100644
--- a/module/plugins/crypter/FilecloudIoFolder.py
+++ b/module/plugins/crypter/FilecloudIoFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FilecloudIoFolder(SimpleCrypter):
__name__ = "FilecloudIoFolder"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/FilecryptCc.py b/module/plugins/crypter/FilecryptCc.py
index 769877802..341b1e13f 100644
--- a/module/plugins/crypter/FilecryptCc.py
+++ b/module/plugins/crypter/FilecryptCc.py
@@ -16,7 +16,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha
class FilecryptCc(Crypter):
__name__ = "FilecryptCc"
__type__ = "crypter"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'https?://(?:www\.)?filecrypt\.cc/Container/\w+'
@@ -47,36 +47,36 @@ class FilecryptCc(Crypter):
if "content notfound" in self.html: #@NOTE: "content notfound" is NOT a typo
self.offline()
- self.handlePasswordProtection()
- self.handleCaptcha()
- self.handleMirrorPages()
+ self.handle_password_protection()
+ self.handle_captcha()
+ self.handle_mirror_pages()
- for handle in (self.handleCNL, self.handleWeblinks, self.handleDlcContainer):
+ for handle in (self.handle_CNL, self.handle_weblinks, self.handle_dlc_container):
handle()
if self.links:
self.packages = [(pyfile.package().name, self.links, pyfile.package().name)]
return
- def handleMirrorPages(self):
- if "mirror=" not in self.siteWithLinks:
+ def handle_mirror_pages(self):
+ if "mirror=" not in self.site_with_links:
return
- mirror = re.findall(self.MIRROR_PAGE_PATTERN, self.siteWithLinks)
+ mirror = re.findall(self.MIRROR_PAGE_PATTERN, self.site_with_links)
- self.logInfo(_("Found %d mirrors") % len(mirror))
+ self.log_info(_("Found %d mirrors") % len(mirror))
for i in mirror[1:]:
- self.siteWithLinks = self.siteWithLinks + self.load(i).decode("utf-8", "replace")
+ self.site_with_links = self.site_with_links + self.load(i).decode("utf-8", "replace")
- def handlePasswordProtection(self):
+ def handle_password_protection(self):
if '<input type="text" name="password"' not in self.html:
return
- self.logInfo(_("Folder is password protected"))
+ self.log_info(_("Folder is password protected"))
- password = self.getPassword()
+ password = self.get_password()
if not password:
self.fail(_("Please enter the password in package section and try again"))
@@ -84,26 +84,26 @@ class FilecryptCc(Crypter):
self.html = self.load(self.pyfile.url, post={"password": password})
- def handleCaptcha(self):
+ def handle_captcha(self):
m = re.search(self.CAPTCHA_PATTERN, self.html)
m2 = re.search(self.CIRCLE_CAPTCHA_PATTERN, self.html)
if m: #: normal captcha
- self.logDebug("Captcha-URL: %s" % m.group(1))
+ self.log_debug("Captcha-URL: %s" % m.group(1))
- captcha_code = self.decryptCaptcha(urlparse.urljoin(self.base_url, m.group(1)),
+ captcha_code = self.decrypt_captcha(urlparse.urljoin(self.base_url, m.group(1)),
forceUser=True,
imgtype="gif")
- self.siteWithLinks = self.load(self.pyfile.url,
+ self.site_with_links = self.load(self.pyfile.url,
post={'recaptcha_response_field': captcha_code})
elif m2: #: circle captcha
- self.logDebug("Captcha-URL: %s" % m2.group(1))
+ self.log_debug("Captcha-URL: %s" % m2.group(1))
- captcha_code = self.decryptCaptcha('%s%s?c=abc' %(self.base_url, m2.group(1)),
+ captcha_code = self.decrypt_captcha('%s%s?c=abc' %(self.base_url, m2.group(1)),
result_type='positional')
- self.siteWithLinks = self.load(self.pyfile.url,
+ self.site_with_links = self.load(self.pyfile.url,
post={'button.x': captcha_code[0], 'button.y': captcha_code[1]})
else:
@@ -112,19 +112,19 @@ class FilecryptCc(Crypter):
if captcha_key:
response, challenge = recaptcha.challenge(captcha_key)
- self.siteWithLinks = self.load(self.pyfile.url,
+ self.site_with_links = self.load(self.pyfile.url,
post={'g-recaptcha-response': response})
else:
- self.logInfo(_("No captcha found"))
- self.siteWithLinks = self.html
+ self.log_info(_("No captcha found"))
+ self.site_with_links = self.html
- if "recaptcha_image" in self.siteWithLinks or "data-sitekey" in self.siteWithLinks:
- self.invalidCaptcha()
+ if "recaptcha_image" in self.site_with_links or "data-sitekey" in self.site_with_links:
+ self.invalid_captcha()
self.retry()
- def handleDlcContainer(self):
- dlc = re.findall(self.DLC_LINK_PATTERN, self.siteWithLinks)
+ def handle_dlc_container(self):
+ dlc = re.findall(self.DLC_LINK_PATTERN, self.site_with_links)
if not dlc:
return
@@ -133,9 +133,9 @@ class FilecryptCc(Crypter):
self.links.append("%s/DLC/%s.dlc" % (self.base_url, i))
- def handleWeblinks(self):
+ def handle_weblinks(self):
try:
- weblinks = re.findall(self.WEBLINK_PATTERN, self.siteWithLinks)
+ weblinks = re.findall(self.WEBLINK_PATTERN, self.site_with_links)
for link in weblinks:
res = self.load("%s/Link/%s.html" % (self.base_url, link))
@@ -144,22 +144,22 @@ class FilecryptCc(Crypter):
self.links.append(res2['location'])
except Exception, e:
- self.logDebug("Error decrypting weblinks: %s" % e)
+ self.log_debug("Error decrypting weblinks: %s" % e)
- def handleCNL(self):
+ def handle_CNL(self):
try:
- vjk = re.findall('<input type="hidden" name="jk" value="function f\(\){ return \'(.*)\';}">', self.siteWithLinks)
- vcrypted = re.findall('<input type="hidden" name="crypted" value="(.*)">', self.siteWithLinks)
+ vjk = re.findall('<input type="hidden" name="jk" value="function f\(\){ return \'(.*)\';}">', self.site_with_links)
+ vcrypted = re.findall('<input type="hidden" name="crypted" value="(.*)">', self.site_with_links)
for i in xrange(len(vcrypted)):
- self.links.extend(self._getLinks(vcrypted[i], vjk[i]))
+ self.links.extend(self._get_links(vcrypted[i], vjk[i]))
except Exception, e:
- self.logDebug("Error decrypting CNL: %s" % e)
+ self.log_debug("Error decrypting CNL: %s" % e)
- def _getLinks(self, crypted, jk):
+ def _get_links(self, crypted, jk):
#: Get key
key = binascii.unhexlify(str(jk))
diff --git a/module/plugins/crypter/FilefactoryComFolder.py b/module/plugins/crypter/FilefactoryComFolder.py
index c0cd028cc..14d8a6827 100644
--- a/module/plugins/crypter/FilefactoryComFolder.py
+++ b/module/plugins/crypter/FilefactoryComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FilefactoryComFolder(SimpleCrypter):
__name__ = "FilefactoryComFolder"
__type__ = "crypter"
- __version__ = "0.32"
+ __version__ = "0.33"
__pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -25,7 +25,7 @@ class FilefactoryComFolder(SimpleCrypter):
PAGES_PATTERN = r'data-paginator-totalPages="(\d+)'
- def loadPage(self, page_n):
+ def load_page(self, page_n):
return self.load(self.pyfile.url, get={'page': page_n, 'show': 100})
diff --git a/module/plugins/crypter/FilerNetFolder.py b/module/plugins/crypter/FilerNetFolder.py
index e2b44e868..c95a2b490 100644
--- a/module/plugins/crypter/FilerNetFolder.py
+++ b/module/plugins/crypter/FilerNetFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FilerNetFolder(SimpleCrypter):
__name__ = "FilerNetFolder"
__type__ = "crypter"
- __version__ = "0.42"
+ __version__ = "0.43"
__pattern__ = r'https?://filer\.net/folder/\w{16}'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/FileserveComFolder.py b/module/plugins/crypter/FileserveComFolder.py
index edd7562df..2c97cddde 100644
--- a/module/plugins/crypter/FileserveComFolder.py
+++ b/module/plugins/crypter/FileserveComFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter
class FileserveComFolder(Crypter):
__name__ = "FileserveComFolder"
__type__ = "crypter"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?fileserve\.com/list/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/FilesonicComFolder.py b/module/plugins/crypter/FilesonicComFolder.py
index 6cd4d8b8c..59db89156 100644
--- a/module/plugins/crypter/FilesonicComFolder.py
+++ b/module/plugins/crypter/FilesonicComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class FilesonicComFolder(DeadCrypter):
__name__ = "FilesonicComFolder"
__type__ = "crypter"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?filesonic\.com/folder/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/FilestubeCom.py b/module/plugins/crypter/FilestubeCom.py
index 9e6b5c114..60d15168d 100644
--- a/module/plugins/crypter/FilestubeCom.py
+++ b/module/plugins/crypter/FilestubeCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FilestubeCom(SimpleCrypter):
__name__ = "FilestubeCom"
__type__ = "crypter"
- __version__ = "0.06"
+ __version__ = "0.07"
__pattern__ = r'http://(?:www\.)?filestube\.(?:com|to)/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/FiletramCom.py b/module/plugins/crypter/FiletramCom.py
index b012d35bc..baf037551 100644
--- a/module/plugins/crypter/FiletramCom.py
+++ b/module/plugins/crypter/FiletramCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FiletramCom(SimpleCrypter):
__name__ = "FiletramCom"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?filetram\.com/[^/]+/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/FiredriveComFolder.py b/module/plugins/crypter/FiredriveComFolder.py
index 792f3198b..52fa92636 100644
--- a/module/plugins/crypter/FiredriveComFolder.py
+++ b/module/plugins/crypter/FiredriveComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class FiredriveComFolder(DeadCrypter):
__name__ = "FiredriveComFolder"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/share/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/FourChanOrg.py b/module/plugins/crypter/FourChanOrg.py
index f3195fe02..ac0cdc042 100644
--- a/module/plugins/crypter/FourChanOrg.py
+++ b/module/plugins/crypter/FourChanOrg.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Crypter import Crypter
class FourChanOrg(Crypter):
__name__ = "FourChanOrg"
__type__ = "crypter"
- __version__ = "0.32"
+ __version__ = "0.33"
__pattern__ = r'http://(?:www\.)?boards\.4chan\.org/\w+/res/(\d+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/FreakhareComFolder.py b/module/plugins/crypter/FreakhareComFolder.py
index 59fa9cf32..ad2ca2040 100644
--- a/module/plugins/crypter/FreakhareComFolder.py
+++ b/module/plugins/crypter/FreakhareComFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FreakhareComFolder(SimpleCrypter):
__name__ = "FreakhareComFolder"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?freakshare\.com/folder/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -25,7 +25,7 @@ class FreakhareComFolder(SimpleCrypter):
PAGES_PATTERN = r'Pages: +(\d+)'
- def loadPage(self, page_n):
+ def load_page(self, page_n):
if not hasattr(self, 'f_id') and not hasattr(self, 'f_md5'):
m = re.search(r'http://freakshare.com/\?x=folder&f_id=(\d+)&f_md5=(\w+)', self.html)
if m:
diff --git a/module/plugins/crypter/FreetexthostCom.py b/module/plugins/crypter/FreetexthostCom.py
index cf6fbb8a4..a1b063912 100644
--- a/module/plugins/crypter/FreetexthostCom.py
+++ b/module/plugins/crypter/FreetexthostCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FreetexthostCom(SimpleCrypter):
__name__ = "FreetexthostCom"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?freetexthost\.com/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -20,7 +20,7 @@ class FreetexthostCom(SimpleCrypter):
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def getLinks(self):
+ def get_links(self):
m = re.search(r'<div id="contentsinner">\s*(.+)<div class="viewcount">', self.html, re.S)
if m is None:
self.error(_("Unable to extract links"))
diff --git a/module/plugins/crypter/FshareVnFolder.py b/module/plugins/crypter/FshareVnFolder.py
index bbee53337..e03f8a65e 100644
--- a/module/plugins/crypter/FshareVnFolder.py
+++ b/module/plugins/crypter/FshareVnFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FshareVnFolder(SimpleCrypter):
__name__ = "FshareVnFolder"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?fshare\.vn/folder/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/FurLy.py b/module/plugins/crypter/FurLy.py
index b8e9332e2..223cc7db3 100644
--- a/module/plugins/crypter/FurLy.py
+++ b/module/plugins/crypter/FurLy.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class FurLy(SimpleCrypter):
__name__ = "FurLy"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?fur\.ly/(\d/)?\w+'
diff --git a/module/plugins/crypter/Go4UpCom.py b/module/plugins/crypter/Go4UpCom.py
index 22f31f6f6..dc47d8cfa 100644
--- a/module/plugins/crypter/Go4UpCom.py
+++ b/module/plugins/crypter/Go4UpCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class Go4UpCom(SimpleCrypter):
__name__ = "Go4UpCom"
__type__ = "crypter"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://go4up\.com/(dl/\w{12}|rd/\w{12}/\d+)'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -29,7 +29,7 @@ class Go4UpCom(SimpleCrypter):
OFFLINE_PATTERN = r'>\s*(404 Page Not Found|File not Found|Mirror does not exist)'
- def getLinks(self):
+ def get_links(self):
links = []
m = re.search(r'(/download/gethosts/.+?)"', self.html)
diff --git a/module/plugins/crypter/GooGl.py b/module/plugins/crypter/GooGl.py
index b36e22884..9bc03532e 100644
--- a/module/plugins/crypter/GooGl.py
+++ b/module/plugins/crypter/GooGl.py
@@ -7,7 +7,7 @@ from module.common.json_layer import json_loads
class GooGl(SimpleCrypter):
__name__ = "GooGl"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?goo\.gl/([a-zA-Z]+/)?\w+'
@@ -22,9 +22,9 @@ class GooGl(SimpleCrypter):
OFFLINE_PATTERN = r'has been disabled|does not exist'
- def getLinks(self):
+ def get_links(self):
rep = self.load(self.API_URL, get={'shortUrl': self.pyfile.url})
- self.logDebug("JSON data: " + rep)
+ self.log_debug("JSON data: " + rep)
rep = json_loads(rep)
return [rep['longUrl']] if "longUrl" in rep else None
diff --git a/module/plugins/crypter/GoogledriveComFolder.py b/module/plugins/crypter/GoogledriveComFolder.py
index 70898b313..c93eb6a5e 100644
--- a/module/plugins/crypter/GoogledriveComFolder.py
+++ b/module/plugins/crypter/GoogledriveComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class GoogledriveComFolder(SimpleCrypter):
__name__ = "GoogledriveCom"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'https?://(?:www\.)?drive\.google\.com/folderview\?.*id=\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package']
diff --git a/module/plugins/crypter/HoerbuchIn.py b/module/plugins/crypter/HoerbuchIn.py
index 09749eba6..bf313dd99 100644
--- a/module/plugins/crypter/HoerbuchIn.py
+++ b/module/plugins/crypter/HoerbuchIn.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter
class HoerbuchIn(Crypter):
__name__ = "HoerbuchIn"
__type__ = "crypter"
- __version__ = "0.61"
+ __version__ = "0.62"
__pattern__ = r'http://(?:www\.)?hoerbuch\.in/(wp/horbucher/\d+/.+/|tp/out\.php\?.+|protection/folder_\d+\.html)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -36,14 +36,14 @@ class HoerbuchIn(Crypter):
abookname = soup.find("a", attrs={"rel": "bookmark"}).text
for a in soup.findAll("a", attrs={"href": self.protection}):
package = "%s (%s)" % (abookname, a.previousSibling.previousSibling.text[:-1])
- links = self.decryptFolder(a['href'])
+ links = self.decrypt_folder(a['href'])
self.packages.append((package, links, package))
else:
- self.urls = self.decryptFolder(pyfile.url)
+ self.urls = self.decrypt_folder(pyfile.url)
- def decryptFolder(self, url):
+ def decrypt_folder(self, url):
m = self.protection.search(url)
if m is None:
self.fail(_("Bad URL"))
diff --git a/module/plugins/crypter/HotfileComFolder.py b/module/plugins/crypter/HotfileComFolder.py
index f1dd56228..1a504c1c7 100644
--- a/module/plugins/crypter/HotfileComFolder.py
+++ b/module/plugins/crypter/HotfileComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class HotfileComFolder(DeadCrypter):
__name__ = "HotfileComFolder"
__type__ = "crypter"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'https?://(?:www\.)?hotfile\.com/list/\w+/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/ILoadTo.py b/module/plugins/crypter/ILoadTo.py
index 4c7387739..c1eb8ddb1 100644
--- a/module/plugins/crypter/ILoadTo.py
+++ b/module/plugins/crypter/ILoadTo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class ILoadTo(DeadCrypter):
__name__ = "ILoadTo"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?iload\.to/go/\d+-[\w.-]+/'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/ImgurComAlbum.py b/module/plugins/crypter/ImgurComAlbum.py
index 9ef7797af..9226e025e 100644
--- a/module/plugins/crypter/ImgurComAlbum.py
+++ b/module/plugins/crypter/ImgurComAlbum.py
@@ -7,7 +7,7 @@ from module.utils import uniqify
class ImgurComAlbum(SimpleCrypter):
__name__ = "ImgurComAlbum"
__type__ = "crypter"
- __version__ = "0.51"
+ __version__ = "0.52"
__pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -23,7 +23,7 @@ class ImgurComAlbum(SimpleCrypter):
LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)'
- def getLinks(self):
+ def get_links(self):
f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url)
return uniqify(map(f, re.findall(self.LINK_PATTERN, self.html)))
diff --git a/module/plugins/crypter/LetitbitNetFolder.py b/module/plugins/crypter/LetitbitNetFolder.py
index e98b1ebc3..6aa9e42a9 100644
--- a/module/plugins/crypter/LetitbitNetFolder.py
+++ b/module/plugins/crypter/LetitbitNetFolder.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class LetitbitNetFolder(Crypter):
__name__ = "LetitbitNetFolder"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?letitbit\.net/folder/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/LinkCryptWs.py b/module/plugins/crypter/LinkCryptWs.py
index e889ca154..44ca502a9 100644
--- a/module/plugins/crypter/LinkCryptWs.py
+++ b/module/plugins/crypter/LinkCryptWs.py
@@ -14,7 +14,7 @@ from module.utils import html_unescape
class LinkCryptWs(Crypter):
__name__ = "LinkCryptWs"
__type__ = "crypter"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'http://(?:www\.)?linkcrypt\.ws/(dir|container)/(?P<ID>\w+)'
@@ -52,34 +52,34 @@ class LinkCryptWs(Crypter):
self.prepare()
- if not self.isOnline():
+ if not self.is_online():
self.offline()
- if self.isKeyCaptchaProtected():
+ if self.is_key_captcha_protected():
self.retry(8, 15, _("Can't handle Key-Captcha"))
- if self.isCaptchaProtected():
+ if self.is_captcha_protected():
self.captcha = True
- self.unlockCaptchaProtection()
- self.handleCaptchaErrors()
+ self.unlock_captcha_protection()
+ self.handle_captcha_errors()
#: Check for protection
- if self.isPasswordProtected():
- self.unlockPasswordProtection()
- self.handleErrors()
+ if self.is_password_protected():
+ self.unlock_password_protection()
+ self.handle_errors()
#: get unrar password
self.getunrarpw()
#: Get package name and folder
- package_name, folder_name = self.getPackageInfo()
+ package_name, folder_name = self.get_package_info()
- #get the container definitions from script section
+ # get the container definitions from script section
self.get_container_html()
#: Extract package links
for type in self.sources:
- links = self.handleLinkSource(type)
+ links = self.handle_link_source(type)
if links:
self.links.extend(links)
@@ -89,59 +89,59 @@ class LinkCryptWs(Crypter):
self.packages = [(package_name, self.links, folder_name)]
- def isOnline(self):
+ def is_online(self):
if "<title>Linkcrypt.ws // Error 404</title>" in self.html:
- self.logDebug("Folder doesn't exist anymore")
+ self.log_debug("Folder doesn't exist anymore")
return False
else:
return True
- def isPasswordProtected(self):
+ def is_password_protected(self):
if "Authorizing" in self.html:
- self.logDebug("Links are password protected")
+ self.log_debug("Links are password protected")
return True
else:
return False
- def isCaptchaProtected(self):
+ def is_captcha_protected(self):
if 'id="captcha">' in self.html:
- self.logDebug("Links are captcha protected")
+ self.log_debug("Links are captcha protected")
return True
else:
return False
- def isKeyCaptchaProtected(self):
+ def is_key_captcha_protected(self):
if re.search(r'>If the folder does not open after klick on <', self.html, re.I):
return True
else:
return False
- def unlockPasswordProtection(self):
- password = self.getPassword()
+ def unlock_password_protection(self):
+ password = self.get_password()
if password:
- self.logDebug("Submitting password [%s] for protected links" % password)
+ self.log_debug("Submitting password [%s] for protected links" % password)
self.html = self.load(self.pyfile.url, post={"password": password, 'x': "0", 'y': "0"})
else:
self.fail(_("Folder is password protected"))
- def unlockCaptchaProtection(self):
+ def unlock_captcha_protection(self):
captcha_url = re.search(r'<form.*?id\s*?=\s*?"captcha"[^>]*?>.*?<\s*?input.*?src="(.+?)"', self.html, re.I | re.S).group(1)
- captcha_code = self.decryptCaptcha(captcha_url, forceUser=True, imgtype="gif", result_type='positional')
+ captcha_code = self.decrypt_captcha(captcha_url, forceUser=True, imgtype="gif", result_type='positional')
self.html = self.load(self.pyfile.url, post={"x": captcha_code[0], "y": captcha_code[1]})
- def getPackageInfo(self):
+ def get_package_info(self):
name = self.pyfile.package().name
folder = self.pyfile.package().folder
- self.logDebug("Defaulting to pyfile name [%s] and folder [%s] for package" % (name, folder))
+ self.log_debug("Defaulting to pyfile name [%s] and folder [%s] for package" % (name, folder))
return name, folder
@@ -154,46 +154,46 @@ class LinkCryptWs(Crypter):
unrarpw = sitein[indexi:indexe]
if not (unrarpw == "Password" or "Dateipasswort") :
- self.logDebug("File password set to: [%s]"% unrarpw)
+ self.log_debug("File password set to: [%s]"% unrarpw)
self.pyfile.package().password = unrarpw
- def handleErrors(self):
- if self.isPasswordProtected():
+ def handle_errors(self):
+ if self.is_password_protected():
self.fail(_("Incorrect password"))
- def handleCaptchaErrors(self):
+ def handle_captcha_errors(self):
if self.captcha:
if "Your choice was wrong!" in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry()
else:
- self.correctCaptcha()
+ self.correct_captcha()
- def handleLinkSource(self, type):
+ def handle_link_source(self, type):
if type == 'cnl':
- return self.handleCNL2()
+ return self.handle_CNL2()
elif type == 'web':
- return self.handleWebLinks()
+ return self.handle_web_links()
elif type in ('rsdf', 'ccf', 'dlc'):
- return self.handleContainer(type)
+ return self.handle_container(type)
else:
self.fail(_("Unknown source type: %s") % type) #@TODO: Replace with self.error in 0.4.10
- def handleWebLinks(self):
- self.logDebug("Search for Web links ")
+ def handle_web_links(self):
+ self.log_debug("Search for Web links ")
package_links = []
pattern = r'<form action="http://linkcrypt.ws/out.html"[^>]*?>.*?<input[^>]*?value="(.+?)"[^>]*?name="file"'
ids = re.findall(pattern, self.html, re.I | re.S)
- self.logDebug("Decrypting %d Web links" % len(ids))
+ self.log_debug("Decrypting %d Web links" % len(ids))
for idx, weblink_id in enumerate(ids):
try:
@@ -208,7 +208,7 @@ class LinkCryptWs(Crypter):
package_links.append(link2)
except Exception, detail:
- self.logDebug("Error decrypting Web link %s, %s" % (weblink_id, detail))
+ self.log_debug("Error decrypting Web link %s, %s" % (weblink_id, detail))
return package_links
@@ -228,11 +228,11 @@ class LinkCryptWs(Crypter):
return self.js.eval(line.replace('{}))',"{}).replace('document.open();document.write','').replace(';document.close();',''))"))
- def handleContainer(self, type):
+ def handle_container(self, type):
package_links = []
type = type.lower()
- self.logDebug('Search for %s Container links' % type.upper())
+ self.log_debug('Search for %s Container links' % type.upper())
if not type.isalnum(): #: check to prevent broken re-pattern (cnl2, rsdf, ccf, dlc, web are all alpha-numeric)
self.fail(_("Unknown container type: %s") % type) #@TODO: Replace with self.error in 0.4.10
@@ -245,18 +245,18 @@ class LinkCryptWs(Crypter):
if not clink:
continue
- self.logDebug("clink avaible")
+ self.log_debug("clink avaible")
- package_name, folder_name = self.getPackageInfo()
- self.logDebug("Added package with name %s.%s and container link %s" %( package_name, type, clink.group(1)))
+ package_name, folder_name = self.get_package_info()
+ self.log_debug("Added package with name %s.%s and container link %s" %( package_name, type, clink.group(1)))
self.core.api.uploadContainer( "%s.%s" %(package_name, type), self.load(clink.group(1)))
return "Found it"
return package_links
- def handleCNL2(self):
- self.logDebug("Search for CNL links")
+ def handle_CNL2(self):
+ self.log_debug("Search for CNL links")
package_links = []
cnl_line = None
@@ -267,21 +267,21 @@ class LinkCryptWs(Crypter):
break
if cnl_line:
- self.logDebug("cnl_line gefunden")
+ self.log_debug("cnl_line gefunden")
try:
cnl_section = self.handle_javascript(cnl_line)
- (vcrypted, vjk) = self._getCipherParams(cnl_section)
+ (vcrypted, vjk) = self._get_cipher_params(cnl_section)
for (crypted, jk) in zip(vcrypted, vjk):
- package_links.extend(self._getLinks(crypted, jk))
+ package_links.extend(self._get_links(crypted, jk))
except Exception:
- self.logError(_("Unable to decrypt CNL links (JS Error) try to get over links"))
- return self.handleWebLinks()
+ self.log_error(_("Unable to decrypt CNL links (JS Error) try to get over links"))
+ return self.handle_web_links()
return package_links
- def _getCipherParams(self, cnl_section):
+ def _get_cipher_params(self, cnl_section):
#: Get jk
jk_re = r'<INPUT.*?NAME="%s".*?VALUE="(.*?)"' % LinkCryptWs.JK_KEY
vjk = re.findall(jk_re, cnl_section)
@@ -291,16 +291,16 @@ class LinkCryptWs(Crypter):
vcrypted = re.findall(crypted_re, cnl_section)
#: Log and return
- self.logDebug("Detected %d crypted blocks" % len(vcrypted))
+ self.log_debug("Detected %d crypted blocks" % len(vcrypted))
return vcrypted, vjk
- def _getLinks(self, crypted, jk):
+ def _get_links(self, crypted, jk):
#: Get key
jreturn = self.js.eval("%s f()" % jk)
key = binascii.unhexlify(jreturn)
- self.logDebug("JsEngine returns value [%s]" % jreturn)
+ self.log_debug("JsEngine returns value [%s]" % jreturn)
#: Decrypt
Key = key
@@ -313,6 +313,6 @@ class LinkCryptWs(Crypter):
links = filter(bool, text.split('\n'))
#: Log and return
- self.logDebug("Package has %d links" % len(links))
+ self.log_debug("Package has %d links" % len(links))
return links
diff --git a/module/plugins/crypter/LinkSaveIn.py b/module/plugins/crypter/LinkSaveIn.py
index dce74b689..29cceeedf 100644
--- a/module/plugins/crypter/LinkSaveIn.py
+++ b/module/plugins/crypter/LinkSaveIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class LinkSaveIn(SimpleCrypter):
__name__ = "LinkSaveIn"
__type__ = "crypter"
- __version__ = "2.05"
+ __version__ = "2.06"
__pattern__ = r'https?://(?:www\.)?linksave\.in/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/LinkdecrypterCom.py b/module/plugins/crypter/LinkdecrypterCom.py
index c8de44157..b56a1dd57 100644
--- a/module/plugins/crypter/LinkdecrypterCom.py
+++ b/module/plugins/crypter/LinkdecrypterCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter
class LinkdecrypterCom(Crypter):
__name__ = "LinkdecrypterCom"
__type__ = "crypter"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'^unmatchable$'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -27,7 +27,7 @@ class LinkdecrypterCom(Crypter):
def setup(self):
- self.password = self.getPassword()
+ self.password = self.get_password()
self.req.setOption("timeout", 300)
@@ -49,9 +49,9 @@ class LinkdecrypterCom(Crypter):
m = re.search(r"<p><i><b>([^<]+)</b></i></p>", self.html)
msg = m.group(1) if m else ""
- self.logInfo(_("Captcha protected link"), result_type, msg)
+ self.log_info(_("Captcha protected link"), result_type, msg)
- captcha = self.decryptCaptcha(captcha_url, result_type=result_type)
+ captcha = self.decrypt_captcha(captcha_url, result_type=result_type)
if result_type == "positional":
captcha = "%d|%d" % captcha
self.html = self.load('http://linkdecrypter.com/', post={"captcha": captcha})
@@ -59,7 +59,7 @@ class LinkdecrypterCom(Crypter):
elif self.PASSWORD_PATTERN in self.html:
if self.password:
- self.logInfo(_("Password protected link"))
+ self.log_info(_("Password protected link"))
self.html = self.load('http://linkdecrypter.com/', post={'password': self.password})
else:
self.fail(_("Missing password"))
diff --git a/module/plugins/crypter/LixIn.py b/module/plugins/crypter/LixIn.py
index 2b4c2071c..a86396a25 100644
--- a/module/plugins/crypter/LixIn.py
+++ b/module/plugins/crypter/LixIn.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Crypter import Crypter
class LixIn(Crypter):
__name__ = "LixIn"
__type__ = "crypter"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'http://(?:www\.)?lix\.in/(?P<ID>.+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -33,7 +33,7 @@ class LixIn(Crypter):
self.error(_("Unable to identify file ID"))
id = m.group('ID')
- self.logDebug("File id is %s" % id)
+ self.log_debug("File id is %s" % id)
self.html = self.load(url)
@@ -46,12 +46,12 @@ class LixIn(Crypter):
for _i in xrange(5):
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m:
- self.logDebug("Trying captcha")
- captcharesult = self.decryptCaptcha(urlparse.urljoin("http://lix.in/", m.group(1)))
+ self.log_debug("Trying captcha")
+ captcharesult = self.decrypt_captcha(urlparse.urljoin("http://lix.in/", m.group(1)))
self.html = self.load(url,
post={"capt": captcharesult, "submit": "submit", "tiny": id})
else:
- self.logDebug("No captcha/captcha solved")
+ self.log_debug("No captcha/captcha solved")
else:
self.html = self.load(url, post={"submit": "submit", "tiny": id})
@@ -60,4 +60,4 @@ class LixIn(Crypter):
self.error(_("Unable to find destination url"))
else:
self.urls = [m.group(1)]
- self.logDebug("Found link %s, adding to package" % self.urls[0])
+ self.log_debug("Found link %s, adding to package" % self.urls[0])
diff --git a/module/plugins/crypter/LofCc.py b/module/plugins/crypter/LofCc.py
index 62e05f299..475c6c0a8 100644
--- a/module/plugins/crypter/LofCc.py
+++ b/module/plugins/crypter/LofCc.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class LofCc(DeadCrypter):
__name__ = "LofCc"
__type__ = "crypter"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?lof\.cc/(.+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/MBLinkInfo.py b/module/plugins/crypter/MBLinkInfo.py
index 7ff400f7e..06856b064 100644
--- a/module/plugins/crypter/MBLinkInfo.py
+++ b/module/plugins/crypter/MBLinkInfo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class MBLinkInfo(DeadCrypter):
__name__ = "MBLinkInfo"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?mblink\.info/?\?id=(\d+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/MediafireComFolder.py b/module/plugins/crypter/MediafireComFolder.py
index dd23df7ca..9ec8f9efe 100644
--- a/module/plugins/crypter/MediafireComFolder.py
+++ b/module/plugins/crypter/MediafireComFolder.py
@@ -9,7 +9,7 @@ from module.common.json_layer import json_loads
class MediafireComFolder(Crypter):
__name__ = "MediafireComFolder"
__type__ = "crypter"
- __version__ = "0.15"
+ __version__ = "0.16"
__pattern__ = r'http://(?:www\.)?mediafire\.com/(folder/|\?sharekey=|\?\w{13}($|[/#]))'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -26,7 +26,7 @@ class MediafireComFolder(Crypter):
def decrypt(self, pyfile):
url, result = checkHTMLHeader(pyfile.url)
- self.logDebug("Location (%d): %s" % (result, url))
+ self.log_debug("Location (%d): %s" % (result, url))
if result == 0:
#: load and parse html
@@ -40,13 +40,13 @@ class MediafireComFolder(Crypter):
m = re.search(self.FOLDER_KEY_PATTERN, html)
if m:
folder_key = m.group(1)
- self.logDebug("FOLDER KEY: %s" % folder_key)
+ self.log_debug("FOLDER KEY: %s" % folder_key)
json_resp = json_loads(self.load("http://www.mediafire.com/api/folder/get_info.php",
get={'folder_key' : folder_key,
'response_format': "json",
'version' : 1}))
- #self.logInfo(json_resp)
+ # self.log_info(json_resp)
if json_resp['response']['result'] == "Success":
for link in json_resp['response']['folder_info']['files']:
self.urls.append("http://www.mediafire.com/file/%s" % link['quickkey'])
diff --git a/module/plugins/crypter/MegaCoNzFolder.py b/module/plugins/crypter/MegaCoNzFolder.py
index a462b7bca..36fbf3cb3 100644
--- a/module/plugins/crypter/MegaCoNzFolder.py
+++ b/module/plugins/crypter/MegaCoNzFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter
class MegaCoNzFolder(Crypter):
__name__ = "MegaCoNzFolder"
__type__ = "crypter"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'(https?://(?:www\.)?mega(\.co)?\.nz/|mega:|chrome:.+?)#F!(?P<ID>[\w^_]+)!(?P<KEY>[\w,\\-]+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/MegaRapidCzFolder.py b/module/plugins/crypter/MegaRapidCzFolder.py
index fadd6dbed..ecb14d7bb 100644
--- a/module/plugins/crypter/MegaRapidCzFolder.py
+++ b/module/plugins/crypter/MegaRapidCzFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class MegaRapidCzFolder(SimpleCrypter):
__name__ = "MegaRapidCzFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/MegauploadComFolder.py b/module/plugins/crypter/MegauploadComFolder.py
index 60e4af57e..5ee4b1f16 100644
--- a/module/plugins/crypter/MegauploadComFolder.py
+++ b/module/plugins/crypter/MegauploadComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class MegauploadComFolder(DeadCrypter):
__name__ = "MegauploadComFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?megaupload\.com/(\?f|xml/folderfiles\.php\?.*&?folderid)=\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/Movie2KTo.py b/module/plugins/crypter/Movie2KTo.py
index 919d77c86..83146bfbf 100644
--- a/module/plugins/crypter/Movie2KTo.py
+++ b/module/plugins/crypter/Movie2KTo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class Movie2KTo(DeadCrypter):
__name__ = "Movie2KTo"
__type__ = "crypter"
- __version__ = "0.51"
+ __version__ = "0.52"
__pattern__ = r'http://(?:www\.)?movie2k\.to/(.+)\.html'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/MultiUpOrg.py b/module/plugins/crypter/MultiUpOrg.py
index b676c3029..0dfa09978 100644
--- a/module/plugins/crypter/MultiUpOrg.py
+++ b/module/plugins/crypter/MultiUpOrg.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class MultiUpOrg(SimpleCrypter):
__name__ = "MultiUpOrg"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?multiup\.org/(en|fr)/(?P<TYPE>project|download|miror)/\w+(/\w+)?'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -24,7 +24,7 @@ class MultiUpOrg(SimpleCrypter):
NAME_PATTERN = r'<title>.*(?:Project|Projet|ownload|élécharger) (?P<N>.+?) (\(|- )'
- def getLinks(self):
+ def get_links(self):
m_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE')
if m_type == "project":
diff --git a/module/plugins/crypter/MultiloadCz.py b/module/plugins/crypter/MultiloadCz.py
index 6b1171a54..9ce145984 100644
--- a/module/plugins/crypter/MultiloadCz.py
+++ b/module/plugins/crypter/MultiloadCz.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class MultiloadCz(Crypter):
__name__ = "MultiloadCz"
__type__ = "crypter"
- __version__ = "0.41"
+ __version__ = "0.42"
__pattern__ = r'http://(?:[^/]*\.)?multiload\.cz/(stahnout|slozka)/.+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -34,9 +34,9 @@ class MultiloadCz(Crypter):
else:
m = re.findall(self.LINK_PATTERN, self.html)
if m:
- prefered_set = set(self.getConfig('usedHoster').split('|'))
+ prefered_set = set(self.get_config('usedHoster').split('|'))
self.urls.extend(x[1] for x in m if x[0] in prefered_set)
if not self.urls:
- ignored_set = set(self.getConfig('ignoredHoster').split('|'))
+ ignored_set = set(self.get_config('ignoredHoster').split('|'))
self.urls.extend(x[1] for x in m if x[0] not in ignored_set)
diff --git a/module/plugins/crypter/MultiuploadCom.py b/module/plugins/crypter/MultiuploadCom.py
index d0679e118..167baab0f 100644
--- a/module/plugins/crypter/MultiuploadCom.py
+++ b/module/plugins/crypter/MultiuploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class MultiuploadCom(DeadCrypter):
__name__ = "MultiuploadCom"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?multiupload\.(com|nl)/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/NCryptIn.py b/module/plugins/crypter/NCryptIn.py
index ec43d7fa9..8abf06602 100644
--- a/module/plugins/crypter/NCryptIn.py
+++ b/module/plugins/crypter/NCryptIn.py
@@ -12,7 +12,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha
class NCryptIn(Crypter):
__name__ = "NCryptIn"
__type__ = "crypter"
- __version__ = "1.36"
+ __version__ = "1.37"
__pattern__ = r'http://(?:www\.)?ncrypt\.in/(?P<TYPE>folder|link|frame)-([^/\?]+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -32,7 +32,7 @@ class NCryptIn(Crypter):
def setup(self):
self.package = None
- self.cleanedHtml = None
+ self.cleaned_html = None
self.links_source_order = ["cnl2", "rsdf", "ccf", "dlc", "web"]
self.protection_type = None
@@ -45,30 +45,30 @@ class NCryptIn(Crypter):
folder_name = self.package.folder
#: Deal with single links
- if self.isSingleLink():
- package_links.extend(self.handleSingleLink())
+ if self.is_single_link():
+ package_links.extend(self.handle_single_link())
#: Deal with folders
else:
#: Request folder home
- self.html = self.requestFolderHome()
- self.cleanedHtml = self.removeHtmlCrap(self.html)
- if not self.isOnline():
+ self.html = self.request_folder_home()
+ self.cleaned_html = self.remove_html_crap(self.html)
+ if not self.is_online():
self.offline()
#: Check for folder protection
- if self.isProtected():
- self.html = self.unlockProtection()
- self.cleanedHtml = self.removeHtmlCrap(self.html)
- self.handleErrors()
+ if self.is_protected():
+ self.html = self.unlock_protection()
+ self.cleaned_html = self.remove_html_crap(self.html)
+ self.handle_errors()
#: Prepare package name and folder
- (package_name, folder_name) = self.getPackageInfo()
+ (package_name, folder_name) = self.get_package_info()
#: Extract package links
for link_source_type in self.links_source_order:
- package_links.extend(self.handleLinkSource(link_source_type))
+ package_links.extend(self.handle_link_source(link_source_type))
if package_links: #: use only first source which provides links
break
package_links = set(package_links)
@@ -78,16 +78,16 @@ class NCryptIn(Crypter):
self.packages = [(package_name, package_links, folder_name)]
- def isSingleLink(self):
+ def is_single_link(self):
link_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE')
return link_type in ("link", "frame")
- def requestFolderHome(self):
+ def request_folder_home(self):
return self.load(self.pyfile.url)
- def removeHtmlCrap(self, content):
+ def remove_html_crap(self, content):
patterns = (r'(type="hidden".*?(name=".*?")?.*?value=".*?")',
r'display:none;">(.*?)</(div|span)>',
r'<div\s+class="jdownloader"(.*?)</div>',
@@ -99,61 +99,61 @@ class NCryptIn(Crypter):
return content
- def isOnline(self):
- if "Your folder does not exist" in self.cleanedHtml:
- self.logDebug("File not m")
+ def is_online(self):
+ if "Your folder does not exist" in self.cleaned_html:
+ self.log_debug("File not m")
return False
return True
- def isProtected(self):
- form = re.search(r'<form.*?name.*?protected.*?>(.*?)</form>', self.cleanedHtml, re.S)
+ def is_protected(self):
+ form = re.search(r'<form.*?name.*?protected.*?>(.*?)</form>', self.cleaned_html, re.S)
if form:
content = form.group(1)
for keyword in ("password", "captcha"):
if keyword in content:
self.protection_type = keyword
- self.logDebug("Links are %s protected" % self.protection_type)
+ self.log_debug("Links are %s protected" % self.protection_type)
return True
return False
- def getPackageInfo(self):
+ def get_package_info(self):
m = re.search(self.NAME_PATTERN, self.html)
if m:
name = folder = m.group('N').strip()
- self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder))
+ self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder))
else:
name = self.package.name
folder = self.package.folder
- self.logDebug("Package info not m, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
+ self.log_debug("Package info not m, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
return name, folder
- def unlockProtection(self):
+ def unlock_protection(self):
postData = {}
- form = re.search(r'<form name="protected"(.*?)</form>', self.cleanedHtml, re.S).group(1)
+ form = re.search(r'<form name="protected"(.*?)</form>', self.cleaned_html, re.S).group(1)
#: Submit package password
if "password" in form:
- password = self.getPassword()
- self.logDebug("Submitting password [%s] for protected links" % password)
+ password = self.get_password()
+ self.log_debug("Submitting password [%s] for protected links" % password)
postData['password'] = password
#: Resolve anicaptcha
if "anicaptcha" in form:
- self.logDebug("Captcha protected")
+ self.log_debug("Captcha protected")
captchaUri = re.search(r'src="(/temp/anicaptcha/.+?)"', form).group(1)
- captcha = self.decryptCaptcha("http://ncrypt.in" + captchaUri)
- self.logDebug("Captcha resolved [%s]" % captcha)
+ captcha = self.decrypt_captcha("http://ncrypt.in" + captchaUri)
+ self.log_debug("Captcha resolved [%s]" % captcha)
postData['captcha'] = captcha
#: Resolve recaptcha
if "recaptcha" in form:
- self.logDebug("ReCaptcha protected")
+ self.log_debug("ReCaptcha protected")
captcha_key = re.search(r'\?k=(.*?)"', form).group(1)
- self.logDebug("Resolving ReCaptcha with key [%s]" % captcha_key)
+ self.log_debug("Resolving ReCaptcha with key [%s]" % captcha_key)
recaptcha = ReCaptcha(self)
response, challenge = recaptcha.challenge(captcha_key)
postData['recaptcha_challenge_field'] = challenge
@@ -161,10 +161,10 @@ class NCryptIn(Crypter):
#: Resolve circlecaptcha
if "circlecaptcha" in form:
- self.logDebug("CircleCaptcha protected")
+ self.log_debug("CircleCaptcha protected")
captcha_img_url = "http://ncrypt.in/classes/captcha/circlecaptcha.php"
- coords = self.decryptCaptcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional')
- self.logDebug("Captcha resolved, coords [%s]" % str(coords))
+ coords = self.decrypt_captcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional')
+ self.log_debug("Captcha resolved, coords [%s]" % str(coords))
postData['circle.x'] = coords[0]
postData['circle.y'] = coords[1]
@@ -173,74 +173,74 @@ class NCryptIn(Crypter):
return self.load(self.pyfile.url, post=postData)
- def handleErrors(self):
+ def handle_errors(self):
if self.protection_type == "password":
- if "This password is invalid!" in self.cleanedHtml:
- self.logDebug("Incorrect password, please set right password on 'Edit package' form and retry")
+ if "This password is invalid!" in self.cleaned_html:
+ self.log_debug("Incorrect password, please set right password on 'Edit package' form and retry")
self.fail(_("Incorrect password, please set right password on 'Edit package' form and retry"))
if self.protection_type == "captcha":
- if "The securitycheck was wrong!" in self.cleanedHtml:
- self.invalidCaptcha()
+ if "The securitycheck was wrong!" in self.cleaned_html:
+ self.invalid_captcha()
self.retry()
else:
- self.correctCaptcha()
+ self.correct_captcha()
- def handleLinkSource(self, link_source_type):
+ def handle_link_source(self, link_source_type):
#: Check for JS engine
require_js_engine = link_source_type in ("cnl2", "rsdf", "ccf", "dlc")
if require_js_engine and not self.js:
- self.logDebug("No JS engine available, skip %s links" % link_source_type)
+ self.log_debug("No JS engine available, skip %s links" % link_source_type)
return []
#: Select suitable handler
if link_source_type == 'single':
- return self.handleSingleLink()
+ return self.handle_single_link()
if link_source_type == 'cnl2':
- return self.handleCNL2()
+ return self.handle_CNL2()
elif link_source_type in ("rsdf", "ccf", "dlc"):
- return self.handleContainer(link_source_type)
+ return self.handle_container(link_source_type)
elif link_source_type == "web":
- return self.handleWebLinks()
+ return self.handle_web_links()
else:
self.error(_('Unknown source type "%s"') % link_source_type)
- def handleSingleLink(self):
- self.logDebug("Handling Single link")
+ def handle_single_link(self):
+ self.log_debug("Handling Single link")
package_links = []
#: Decrypt single link
- decrypted_link = self.decryptLink(self.pyfile.url)
+ decrypted_link = self.decrypt_link(self.pyfile.url)
if decrypted_link:
package_links.append(decrypted_link)
return package_links
- def handleCNL2(self):
- self.logDebug("Handling CNL2 links")
+ def handle_CNL2(self):
+ self.log_debug("Handling CNL2 links")
package_links = []
- if 'cnl2_output' in self.cleanedHtml:
+ if 'cnl2_output' in self.cleaned_html:
try:
- (vcrypted, vjk) = self._getCipherParams()
+ (vcrypted, vjk) = self._get_cipher_params()
for (crypted, jk) in zip(vcrypted, vjk):
- package_links.extend(self._getLinks(crypted, jk))
+ package_links.extend(self._get_links(crypted, jk))
except Exception:
self.fail(_("Unable to decrypt CNL2 links"))
return package_links
- def handleContainers(self):
- self.logDebug("Handling Container links")
+ def handle_containers(self):
+ self.log_debug("Handling Container links")
package_links = []
pattern = r'/container/(rsdf|dlc|ccf)/(\w+)'
containersLinks = re.findall(pattern, self.html)
- self.logDebug("Decrypting %d Container links" % len(containersLinks))
+ self.log_debug("Decrypting %d Container links" % len(containersLinks))
for containerLink in containersLinks:
link = "http://ncrypt.in/container/%s/%s.%s" % (containerLink[0], containerLink[1], containerLink[0])
package_links.append(link)
@@ -248,15 +248,15 @@ class NCryptIn(Crypter):
return package_links
- def handleWebLinks(self):
- self.logDebug("Handling Web links")
+ def handle_web_links(self):
+ self.log_debug("Handling Web links")
pattern = r'(http://ncrypt\.in/link-.*?=)'
links = re.findall(pattern, self.html)
package_links = []
- self.logDebug("Decrypting %d Web links" % len(links))
+ self.log_debug("Decrypting %d Web links" % len(links))
for i, link in enumerate(links):
- self.logDebug("Decrypting Web link %d, %s" % (i + 1, link))
+ self.log_debug("Decrypting Web link %d, %s" % (i + 1, link))
decrypted_link = self.decrypt(link)
if decrypted_link:
package_links.append(decrypted_link)
@@ -264,16 +264,16 @@ class NCryptIn(Crypter):
return package_links
- def decryptLink(self, link):
+ def decrypt_link(self, link):
try:
url = link.replace("link-", "frame-")
link = self.load(url, just_header=True)['location']
return link
except Exception, detail:
- self.logDebug("Error decrypting link %s, %s" % (link, detail))
+ self.log_debug("Error decrypting link %s, %s" % (link, detail))
- def _getCipherParams(self):
+ def _get_cipher_params(self):
pattern = r'<input.*?name="%s".*?value="(.*?)"'
#: Get jk
@@ -285,14 +285,14 @@ class NCryptIn(Crypter):
vcrypted = re.findall(crypted_re, self.html)
#: Log and return
- self.logDebug("Detected %d crypted blocks" % len(vcrypted))
+ self.log_debug("Detected %d crypted blocks" % len(vcrypted))
return vcrypted, vjk
- def _getLinks(self, crypted, jk):
+ def _get_links(self, crypted, jk):
#: Get key
jreturn = self.js.eval("%s f()" % jk)
- self.logDebug("JsEngine returns value [%s]" % jreturn)
+ self.log_debug("JsEngine returns value [%s]" % jreturn)
key = binascii.unhexlify(jreturn)
#: Decrypt
@@ -306,5 +306,5 @@ class NCryptIn(Crypter):
links = filter(bool, text.split('\n'))
#: Log and return
- self.logDebug("Block has %d links" % len(links))
+ self.log_debug("Block has %d links" % len(links))
return links
diff --git a/module/plugins/crypter/NetfolderIn.py b/module/plugins/crypter/NetfolderIn.py
index 32d59af03..465c0a302 100644
--- a/module/plugins/crypter/NetfolderIn.py
+++ b/module/plugins/crypter/NetfolderIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class NetfolderIn(DeadCrypter):
__name__ = "NetfolderIn"
__type__ = "crypter"
- __version__ = "0.73"
+ __version__ = "0.74"
__pattern__ = r'http://(?:www\.)?netfolder\.(in|me)/(folder\.php\?folder_id=)?(?P<ID>\w+)(?(1)|/\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/NitroflareComFolder.py b/module/plugins/crypter/NitroflareComFolder.py
index 1db2378e3..0e1f92e98 100644
--- a/module/plugins/crypter/NitroflareComFolder.py
+++ b/module/plugins/crypter/NitroflareComFolder.py
@@ -7,7 +7,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class NitroflareComFolder(SimpleCrypter):
__name__ = "NitroflareComFolder"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?nitroflare\.com/folder/(?P<USER>\d+)/(?P<ID>[\w=]+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -18,7 +18,7 @@ class NitroflareComFolder(SimpleCrypter):
__authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- def getLinks(self):
+ def get_links(self):
res = json_loads(self.load("http://nitroflare.com/ajax/folder.php",
post={'userId' : self.info['pattern']['USER'],
'folder' : self.info['pattern']['ID'],
diff --git a/module/plugins/crypter/NosvideoCom.py b/module/plugins/crypter/NosvideoCom.py
index 9808837c4..b08b1cbdc 100644
--- a/module/plugins/crypter/NosvideoCom.py
+++ b/module/plugins/crypter/NosvideoCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class NosvideoCom(SimpleCrypter):
__name__ = "NosvideoCom"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?nosvideo\.com/\?v=\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/OneKhDe.py b/module/plugins/crypter/OneKhDe.py
index a45d7dbff..ef95ab68c 100644
--- a/module/plugins/crypter/OneKhDe.py
+++ b/module/plugins/crypter/OneKhDe.py
@@ -9,7 +9,7 @@ from module.utils import html_unescape
class OneKhDe(Crypter):
__name__ = "OneKhDe"
__type__ = "crypter"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?1kh\.de/f/'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/OronComFolder.py b/module/plugins/crypter/OronComFolder.py
index 048af7d82..da93e6f97 100644
--- a/module/plugins/crypter/OronComFolder.py
+++ b/module/plugins/crypter/OronComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class OronComFolder(DeadCrypter):
__name__ = "OronComFolder"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?oron\.com/folder/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/PastebinCom.py b/module/plugins/crypter/PastebinCom.py
index af039a6ab..6186bc894 100644
--- a/module/plugins/crypter/PastebinCom.py
+++ b/module/plugins/crypter/PastebinCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class PastebinCom(SimpleCrypter):
__name__ = "PastebinCom"
__type__ = "crypter"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'https://(?:www\.)?pastebin\.com/(.+i=)?(?P<ID>\w{8})'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/PastedCo.py b/module/plugins/crypter/PastedCo.py
index 8236345cc..50bcadaba 100644
--- a/module/plugins/crypter/PastedCo.py
+++ b/module/plugins/crypter/PastedCo.py
@@ -8,7 +8,7 @@ import re
class PastedCo(Crypter):
__name__ = "PastedCo"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://pasted\.co/\w+'
diff --git a/module/plugins/crypter/QuickshareCzFolder.py b/module/plugins/crypter/QuickshareCzFolder.py
index e1fdc22bc..01b932e06 100644
--- a/module/plugins/crypter/QuickshareCzFolder.py
+++ b/module/plugins/crypter/QuickshareCzFolder.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class QuickshareCzFolder(Crypter):
__name__ = "QuickshareCzFolder"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?quickshare\.cz/slozka-\d+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/RSLayerCom.py b/module/plugins/crypter/RSLayerCom.py
index 6f078e9e4..1b1c5b139 100644
--- a/module/plugins/crypter/RSLayerCom.py
+++ b/module/plugins/crypter/RSLayerCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class RSLayerCom(DeadCrypter):
__name__ = "RSLayerCom"
__type__ = "crypter"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?rs-layer\.com/directory-'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/RelinkUs.py b/module/plugins/crypter/RelinkUs.py
index cda70816d..4f3077771 100644
--- a/module/plugins/crypter/RelinkUs.py
+++ b/module/plugins/crypter/RelinkUs.py
@@ -14,7 +14,7 @@ from module.utils import save_join as fs_join
class RelinkUs(Crypter):
__name__ = "RelinkUs"
__type__ = "crypter"
- __version__ = "3.13"
+ __version__ = "3.14"
__pattern__ = r'http://(?:www\.)?relink\.us/(f/|((view|go)\.php\?id=))(?P<ID>.+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -63,32 +63,32 @@ class RelinkUs(Crypter):
def decrypt(self, pyfile):
#: Init
- self.initPackage(pyfile)
+ self.init_package(pyfile)
#: Request package
- self.requestPackage()
+ self.request_package()
#: Check for online
- if not self.isOnline():
+ if not self.is_online():
self.offline()
#: Check for protection
- if self.isPasswordProtected():
- self.unlockPasswordProtection()
- self.handleErrors()
+ if self.is_password_protected():
+ self.unlock_password_protection()
+ self.handle_errors()
- if self.isCaptchaProtected():
+ if self.is_captcha_protected():
self.captcha = True
- self.unlockCaptchaProtection()
- self.handleErrors()
+ self.unlock_captcha_protection()
+ self.handle_errors()
#: Get package name and folder
- (package_name, folder_name) = self.getPackageInfo()
+ (package_name, folder_name) = self.get_package_info()
#: Extract package links
package_links = []
for sources in self.PREFERRED_LINK_SOURCES:
- package_links.extend(self.handleLinkSource(sources))
+ package_links.extend(self.handle_link_source(sources))
if package_links: #: use only first source which provides links
break
package_links = set(package_links)
@@ -98,39 +98,39 @@ class RelinkUs(Crypter):
self.packages = [(package_name, package_links, folder_name)]
- def initPackage(self, pyfile):
+ def init_package(self, pyfile):
self.fileid = re.match(self.__pattern__, pyfile.url).group('ID')
self.package = pyfile.package()
- def requestPackage(self):
+ def request_package(self):
self.html = self.load(self.pyfile.url)
- def isOnline(self):
+ def is_online(self):
if self.OFFLINE_TOKEN in self.html:
- self.logDebug("File not found")
+ self.log_debug("File not found")
return False
return True
- def isPasswordProtected(self):
+ def is_password_protected(self):
if self.PASSWORD_TOKEN in self.html:
- self.logDebug("Links are password protected")
+ self.log_debug("Links are password protected")
return True
- def isCaptchaProtected(self):
+ def is_captcha_protected(self):
if self.CAPTCHA_TOKEN in self.html:
- self.logDebug("Links are captcha protected")
+ self.log_debug("Links are captcha protected")
return True
return False
- def unlockPasswordProtection(self):
- password = self.getPassword()
+ def unlock_password_protection(self):
+ password = self.get_password()
- self.logDebug("Submitting password [%s] for protected links" % password)
+ self.log_debug("Submitting password [%s] for protected links" % password)
if password:
passwd_url = self.PASSWORD_SUBMIT_URL + "?id=%s" % self.fileid
@@ -138,17 +138,17 @@ class RelinkUs(Crypter):
self.html = self.load(passwd_url, post=passwd_data)
- def unlockCaptchaProtection(self):
- self.logDebug("Request user positional captcha resolving")
+ def unlock_captcha_protection(self):
+ self.log_debug("Request user positional captcha resolving")
captcha_img_url = self.CAPTCHA_IMG_URL + "?id=%s" % self.fileid
- coords = self.decryptCaptcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional')
- self.logDebug("Captcha resolved, coords [%s]" % str(coords))
+ coords = self.decrypt_captcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional')
+ self.log_debug("Captcha resolved, coords [%s]" % str(coords))
captcha_post_url = self.CAPTCHA_SUBMIT_URL + "?id=%s" % self.fileid
captcha_post_data = {'button.x': coords[0], 'button.y': coords[1], 'captcha': 'submit'}
self.html = self.load(captcha_post_url, post=captcha_post_data)
- def getPackageInfo(self):
+ def get_package_info(self):
name = folder = None
#: Try to get info from web
@@ -157,65 +157,65 @@ class RelinkUs(Crypter):
title = m.group(1).strip()
if not self.FILE_NOTITLE in title:
name = folder = title
- self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder))
+ self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder))
#: Fallback to defaults
if not name or not folder:
name = self.package.name
folder = self.package.folder
- self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
+ self.log_debug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
#: Return package info
return name, folder
- def handleErrors(self):
+ def handle_errors(self):
if self.PASSWORD_ERROR_ROKEN in self.html:
msg = "Incorrect password, please set right password on 'Edit package' form and retry"
- self.logDebug(msg)
+ self.log_debug(msg)
self.fail(_(msg))
if self.captcha:
if self.CAPTCHA_ERROR_ROKEN in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry()
else:
- self.correctCaptcha()
+ self.correct_captcha()
- def handleLinkSource(self, source):
+ def handle_link_source(self, source):
if source == 'cnl2':
- return self.handleCNL2Links()
+ return self.handle_CNL2Links()
elif source == 'dlc':
- return self.handleDLCLinks()
+ return self.handle_d_l_c_links()
elif source == 'web':
- return self.handleWEBLinks()
+ return self.handle_w_e_b_links()
else:
self.error(_('Unknown source type "%s"') % source)
- def handleCNL2Links(self):
- self.logDebug("Search for CNL2 links")
+ def handle_CNL2Links(self):
+ self.log_debug("Search for CNL2 links")
package_links = []
m = re.search(self.CNL2_FORM_REGEX, self.html, re.S)
if m:
cnl2_form = m.group(1)
try:
- (vcrypted, vjk) = self._getCipherParams(cnl2_form)
+ (vcrypted, vjk) = self._get_cipher_params(cnl2_form)
for (crypted, jk) in zip(vcrypted, vjk):
- package_links.extend(self._getLinks(crypted, jk))
+ package_links.extend(self._get_links(crypted, jk))
except Exception:
- self.logDebug("Unable to decrypt CNL2 links")
+ self.log_debug("Unable to decrypt CNL2 links")
return package_links
- def handleDLCLinks(self):
- self.logDebug("Search for DLC links")
+ def handle_d_l_c_links(self):
+ self.log_debug("Search for DLC links")
package_links = []
m = re.search(self.DLC_LINK_REGEX, self.html)
if m:
container_url = self.DLC_DOWNLOAD_URL + "?id=%s&dlc=1" % self.fileid
- self.logDebug("Downloading DLC container link [%s]" % container_url)
+ self.log_debug("Downloading DLC container link [%s]" % container_url)
try:
dlc = self.load(container_url)
dlc_filename = self.fileid + ".dlc"
@@ -230,19 +230,19 @@ class RelinkUs(Crypter):
return package_links
- def handleWEBLinks(self):
- self.logDebug("Search for WEB links")
+ def handle_w_e_b_links(self):
+ self.log_debug("Search for WEB links")
package_links = []
params = re.findall(self.WEB_FORWARD_REGEX, self.html)
- self.logDebug("Decrypting %d Web links" % len(params))
+ self.log_debug("Decrypting %d Web links" % len(params))
for index, param in enumerate(params):
try:
url = self.WEB_FORWARD_URL + "?%s" % param
- self.logDebug("Decrypting Web link %d, %s" % (index + 1, url))
+ self.log_debug("Decrypting Web link %d, %s" % (index + 1, url))
res = self.load(url)
link = re.search(self.WEB_LINK_REGEX, res).group(1)
@@ -250,15 +250,15 @@ class RelinkUs(Crypter):
package_links.append(link)
except Exception, detail:
- self.logDebug("Error decrypting Web link %s, %s" % (index, detail))
+ self.log_debug("Error decrypting Web link %s, %s" % (index, detail))
- self.setWait(4)
+ self.set_wait(4)
self.wait()
return package_links
- def _getCipherParams(self, cnl2_form):
+ def _get_cipher_params(self, cnl2_form):
#: Get jk
jk_re = self.CNL2_FORMINPUT_REGEX % self.CNL2_JK_KEY
vjk = re.findall(jk_re, cnl2_form, re.I)
@@ -268,14 +268,14 @@ class RelinkUs(Crypter):
vcrypted = re.findall(crypted_re, cnl2_form, re.I)
#: Log and return
- self.logDebug("Detected %d crypted blocks" % len(vcrypted))
+ self.log_debug("Detected %d crypted blocks" % len(vcrypted))
return vcrypted, vjk
- def _getLinks(self, crypted, jk):
+ def _get_links(self, crypted, jk):
#: Get key
jreturn = self.js.eval("%s f()" % jk)
- self.logDebug("JsEngine returns value [%s]" % jreturn)
+ self.log_debug("JsEngine returns value [%s]" % jreturn)
key = binascii.unhexlify(jreturn)
#: Decrypt
@@ -289,5 +289,5 @@ class RelinkUs(Crypter):
links = filter(bool, text.split('\n'))
#: Log and return
- self.logDebug("Package has %d links" % len(links))
+ self.log_debug("Package has %d links" % len(links))
return links
diff --git a/module/plugins/crypter/SafelinkingNet.py b/module/plugins/crypter/SafelinkingNet.py
index 3ebb5f22d..973d62985 100644
--- a/module/plugins/crypter/SafelinkingNet.py
+++ b/module/plugins/crypter/SafelinkingNet.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SolveMedia import SolveMedia
class SafelinkingNet(Crypter):
__name__ = "SafelinkingNet"
__type__ = "crypter"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'https?://(?:www\.)?safelinking\.net/([pd])/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -43,7 +43,7 @@ class SafelinkingNet(Crypter):
self.html = self.load(url)
if "link-password" in self.html:
- postData['link-password'] = self.getPassword()
+ postData['link-password'] = self.get_password()
if "altcaptcha" in self.html:
for _i in xrange(5):
diff --git a/module/plugins/crypter/SecuredIn.py b/module/plugins/crypter/SecuredIn.py
index a2eac4f13..321cc8778 100644
--- a/module/plugins/crypter/SecuredIn.py
+++ b/module/plugins/crypter/SecuredIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class SecuredIn(DeadCrypter):
__name__ = "SecuredIn"
__type__ = "crypter"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?secured\.in/download-[\d]+-\w{8}\.html'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/SexuriaCom.py b/module/plugins/crypter/SexuriaCom.py
index cce2177f4..db827ca27 100644
--- a/module/plugins/crypter/SexuriaCom.py
+++ b/module/plugins/crypter/SexuriaCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter
class SexuriaCom(Crypter):
__name__ = "SexuriaCom"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?sexuria\.com/(v1/)?(Pornos_Kostenlos_.+?_(\d+)\.html|dl_links_\d+_\d+\.html|id=\d+\&part=\d+\&link=\d+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -34,11 +34,11 @@ class SexuriaCom(Crypter):
self.package = pyfile.package()
#: Get package links
- package_name, self.links, folder_name, package_pwd = self.decryptLinks(self.pyfile.url)
+ package_name, self.links, folder_name, package_pwd = self.decrypt_links(self.pyfile.url)
self.packages = [(package_name, self.links, folder_name)]
- def decryptLinks(self, url):
+ def decrypt_links(self, url):
linklist = []
name = self.package.name
folder = self.package.folder
@@ -65,30 +65,30 @@ class SexuriaCom(Crypter):
title = re.search(self.PATTERN_TITLE, html, re.I).group('TITLE').strip()
if title:
name = folder = title
- self.logDebug("Package info found, name [%s] and folder [%s]" % (name, folder))
+ self.log_debug("Package info found, name [%s] and folder [%s]" % (name, folder))
pwd = re.search(self.PATTERN_PASSWORD, html, re.I | re.S).group('PWD')
if pwd and pwd not in ("Kein Passwort", "-"):
password = pwd.strip()
- self.logDebug("Password info [%s] found" % password)
+ self.log_debug("Password info [%s] found" % password)
#: Process link (dl_link)
html = self.load(url)
links = re.findall(self.PATTERN_REDIRECT_LINKS, html, re.I)
if len(links) == 0:
- self.logError("Broken for link %s" % link)
+ self.log_error("Broken for link %s" % link)
else:
for link in links:
link = link.replace("http://sexuria.com/", "http://www.sexuria.com/")
finallink = self.load(link, just_header=True)['location']
if not finallink or "sexuria.com/" in finallink:
- self.logError("Broken for link %s" % link)
+ self.log_error("Broken for link %s" % link)
else:
linklist.append(finallink)
#: Debug log
- self.logDebug("%d supported links" % len(linklist))
+ self.log_debug("%d supported links" % len(linklist))
for i, link in enumerate(linklist):
- self.logDebug("Supported link %d, %s" % (i + 1, link))
+ self.log_debug("Supported link %d, %s" % (i + 1, link))
return name, linklist, folder, password
diff --git a/module/plugins/crypter/ShSt.py b/module/plugins/crypter/ShSt.py
index 4dc5b1e2d..a65522aea 100644
--- a/module/plugins/crypter/ShSt.py
+++ b/module/plugins/crypter/ShSt.py
@@ -9,7 +9,7 @@ import re
class ShSt(Crypter):
__name__ = "ShSt"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://sh\.st/\w+'
diff --git a/module/plugins/crypter/ShareLinksBiz.py b/module/plugins/crypter/ShareLinksBiz.py
index 250cc0c81..9b435e694 100644
--- a/module/plugins/crypter/ShareLinksBiz.py
+++ b/module/plugins/crypter/ShareLinksBiz.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter
class ShareLinksBiz(Crypter):
__name__ = "ShareLinksBiz"
__type__ = "crypter"
- __version__ = "1.15"
+ __version__ = "1.16"
__pattern__ = r'http://(?:www\.)?(share-links|s2l)\.biz/(?P<ID>_?\w+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -22,113 +22,113 @@ class ShareLinksBiz(Crypter):
def setup(self):
- self.baseUrl = None
- self.fileId = None
+ self.base_url = None
+ self.file_id = None
self.package = None
self.captcha = False
def decrypt(self, pyfile):
#: Init
- self.initFile(pyfile)
+ self.init_file(pyfile)
#: Request package
- url = self.baseUrl + '/' + self.fileId
+ url = self.base_url + '/' + self.file_id
self.html = self.load(url)
#: Unblock server (load all images)
- self.unblockServer()
+ self.unblock_server()
#: Check for protection
- if self.isPasswordProtected():
- self.unlockPasswordProtection()
- self.handleErrors()
+ if self.is_password_protected():
+ self.unlock_password_protection()
+ self.handle_errors()
- if self.isCaptchaProtected():
+ if self.is_captcha_protected():
self.captcha = True
- self.unlockCaptchaProtection()
- self.handleErrors()
+ self.unlock_captcha_protection()
+ self.handle_errors()
#: Extract package links
package_links = []
- package_links.extend(self.handleWebLinks())
- package_links.extend(self.handleContainers())
- package_links.extend(self.handleCNL2())
+ package_links.extend(self.handle_web_links())
+ package_links.extend(self.handle_containers())
+ package_links.extend(self.handle_CNL2())
package_links = set(package_links)
#: Get package info
- package_name, package_folder = self.getPackageInfo()
+ package_name, package_folder = self.get_package_info()
#: Pack
self.packages = [(package_name, package_links, package_folder)]
- def initFile(self, pyfile):
+ def init_file(self, pyfile):
url = pyfile.url
if 's2l.biz' in url:
url = self.load(url, just_header=True)['location']
- self.baseUrl = "http://www.%s.biz" % re.match(self.__pattern__, url).group(1)
- self.fileId = re.match(self.__pattern__, url).group('ID')
+ self.base_url = "http://www.%s.biz" % re.match(self.__pattern__, url).group(1)
+ self.file_id = re.match(self.__pattern__, url).group('ID')
self.package = pyfile.package()
- def isOnline(self):
+ def is_online(self):
if "No usable content was found" in self.html:
- self.logDebug("File not found")
+ self.log_debug("File not found")
return False
return True
- def isPasswordProtected(self):
+ def is_password_protected(self):
if re.search(r'''<form.*?id="passwordForm".*?>''', self.html):
- self.logDebug("Links are protected")
+ self.log_debug("Links are protected")
return True
return False
- def isCaptchaProtected(self):
+ def is_captcha_protected(self):
if '<map id="captchamap"' in self.html:
- self.logDebug("Links are captcha protected")
+ self.log_debug("Links are captcha protected")
return True
return False
- def unblockServer(self):
+ def unblock_server(self):
imgs = re.findall(r"(/template/images/.*?\.gif)", self.html)
for img in imgs:
- self.load(self.baseUrl + img)
+ self.load(self.base_url + img)
- def unlockPasswordProtection(self):
- password = self.getPassword()
- self.logDebug("Submitting password [%s] for protected links" % password)
+ def unlock_password_protection(self):
+ password = self.get_password()
+ self.log_debug("Submitting password [%s] for protected links" % password)
post = {"password": password, 'login': 'Submit form'}
- url = self.baseUrl + '/' + self.fileId
+ url = self.base_url + '/' + self.file_id
self.html = self.load(url, post=post)
- def unlockCaptchaProtection(self):
+ def unlock_captcha_protection(self):
#: Get captcha map
- captchaMap = self._getCaptchaMap()
- self.logDebug("Captcha map with [%d] positions" % len(captchaMap.keys()))
+ captchaMap = self._get_captcha_map()
+ self.log_debug("Captcha map with [%d] positions" % len(captchaMap.keys()))
#: Request user for captcha coords
m = re.search(r'<img src="/captcha.gif\?d=(.*?)&amp;PHPSESSID=(.*?)&amp;legend=1"', self.html)
- captchaUrl = self.baseUrl + '/captcha.gif?d=%s&PHPSESSID=%s' % (m.group(1), m.group(2))
- self.logDebug("Waiting user for correct position")
- coords = self.decryptCaptcha(captchaUrl, forceUser=True, imgtype="gif", result_type='positional')
- self.logDebug("Captcha resolved, coords [%s]" % str(coords))
+ captchaUrl = self.base_url + '/captcha.gif?d=%s&PHPSESSID=%s' % (m.group(1), m.group(2))
+ self.log_debug("Waiting user for correct position")
+ coords = self.decrypt_captcha(captchaUrl, forceUser=True, imgtype="gif", result_type='positional')
+ self.log_debug("Captcha resolved, coords [%s]" % str(coords))
#: Resolve captcha
- href = self._resolveCoords(coords, captchaMap)
+ href = self._resolve_coords(coords, captchaMap)
if href is None:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(wait_time=5)
- url = self.baseUrl + href
+ url = self.base_url + href
self.html = self.load(url)
- def _getCaptchaMap(self):
+ def _get_captcha_map(self):
mapp = {}
for m in re.finditer(r'<area shape="rect" coords="(.*?)" href="(.*?)"', self.html):
rect = eval('(' + m.group(1) + ')')
@@ -137,7 +137,7 @@ class ShareLinksBiz(Crypter):
return mapp
- def _resolveCoords(self, coords, captchaMap):
+ def _resolve_coords(self, coords, captchaMap):
x, y = coords
for rect, href in captchaMap.iteritems():
x1, y1, x2, y2 = rect
@@ -145,20 +145,20 @@ class ShareLinksBiz(Crypter):
return href
- def handleErrors(self):
+ def handle_errors(self):
if "The inserted password was wrong" in self.html:
- self.logDebug("Incorrect password, please set right password on 'Edit package' form and retry")
+ self.log_debug("Incorrect password, please set right password on 'Edit package' form and retry")
self.fail(_("Incorrect password, please set right password on 'Edit package' form and retry"))
if self.captcha:
if "Your choice was wrong" in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(wait_time=5)
else:
- self.correctCaptcha()
+ self.correct_captcha()
- def getPackageInfo(self):
+ def get_package_info(self):
name = folder = None
#: Extract from web package header
@@ -168,35 +168,35 @@ class ShareLinksBiz(Crypter):
title = m.group(1).strip()
if 'unnamed' not in title:
name = folder = title
- self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder))
+ self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder))
#: Fallback to defaults
if not name or not folder:
name = self.package.name
folder = self.package.folder
- self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
+ self.log_debug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
#: Return package info
return name, folder
- def handleWebLinks(self):
+ def handle_web_links(self):
package_links = []
- self.logDebug("Handling Web links")
+ self.log_debug("Handling Web links")
#@TODO: Gather paginated web links
pattern = r'javascript:_get\(\'(.*?)\', \d+, \'\'\)'
ids = re.findall(pattern, self.html)
- self.logDebug("Decrypting %d Web links" % len(ids))
+ self.log_debug("Decrypting %d Web links" % len(ids))
for i, ID in enumerate(ids):
try:
- self.logDebug("Decrypting Web link %d, [%s]" % (i + 1, ID))
+ self.log_debug("Decrypting Web link %d, [%s]" % (i + 1, ID))
- dwLink = self.baseUrl + "/get/lnk/" + ID
+ dwLink = self.base_url + "/get/lnk/" + ID
res = self.load(dwLink)
code = re.search(r'frm/(\d+)', res).group(1)
- fwLink = self.baseUrl + "/get/frm/" + code
+ fwLink = self.base_url + "/get/frm/" + code
res = self.load(fwLink)
jscode = re.search(r'<script language="javascript">\s*eval\((.*)\)\s*</script>', res, re.S).group(1)
@@ -205,44 +205,44 @@ class ShareLinksBiz(Crypter):
dlLink = self.js.eval(jslauncher % jscode)
- self.logDebug("JsEngine returns value [%s] for redirection link" % dlLink)
+ self.log_debug("JsEngine returns value [%s] for redirection link" % dlLink)
package_links.append(dlLink)
except Exception, detail:
- self.logDebug("Error decrypting Web link [%s], %s" % (ID, detail))
+ self.log_debug("Error decrypting Web link [%s], %s" % (ID, detail))
return package_links
- def handleContainers(self):
+ def handle_containers(self):
package_links = []
- self.logDebug("Handling Container links")
+ self.log_debug("Handling Container links")
pattern = r'javascript:_get\(\'(.*?)\', 0, \'(rsdf|ccf|dlc)\'\)'
containersLinks = re.findall(pattern, self.html)
- self.logDebug("Decrypting %d Container links" % len(containersLinks))
+ self.log_debug("Decrypting %d Container links" % len(containersLinks))
for containerLink in containersLinks:
- link = "%s/get/%s/%s" % (self.baseUrl, containerLink[1], containerLink[0])
+ link = "%s/get/%s/%s" % (self.base_url, containerLink[1], containerLink[0])
package_links.append(link)
return package_links
- def handleCNL2(self):
+ def handle_CNL2(self):
package_links = []
- self.logDebug("Handling CNL2 links")
+ self.log_debug("Handling CNL2 links")
if '/lib/cnl2/ClicknLoad.swf' in self.html:
try:
- (crypted, jk) = self._getCipherParams()
- package_links.extend(self._getLinks(crypted, jk))
+ (crypted, jk) = self._get_cipher_params()
+ package_links.extend(self._get_links(crypted, jk))
except Exception:
self.fail(_("Unable to decrypt CNL2 links"))
return package_links
- def _getCipherParams(self):
+ def _get_cipher_params(self):
#: Request CNL2
code = re.search(r'ClicknLoad.swf\?code=(.*?)"', self.html).group(1)
- url = "%s/get/cnl2/%s" % (self.baseUrl, code)
+ url = "%s/get/cnl2/%s" % (self.base_url, code)
res = self.load(url)
params = res.split(";;")
@@ -258,10 +258,10 @@ class ShareLinksBiz(Crypter):
return crypted, jk
- def _getLinks(self, crypted, jk):
+ def _get_links(self, crypted, jk):
#: Get key
jreturn = self.js.eval("%s f()" % jk)
- self.logDebug("JsEngine returns value [%s]" % jreturn)
+ self.log_debug("JsEngine returns value [%s]" % jreturn)
key = binascii.unhexlify(jreturn)
#: Decrypt
@@ -275,5 +275,5 @@ class ShareLinksBiz(Crypter):
links = filter(bool, text.split('\n'))
#: Log and return
- self.logDebug("Block has %d links" % len(links))
+ self.log_debug("Block has %d links" % len(links))
return links
diff --git a/module/plugins/crypter/SharingmatrixComFolder.py b/module/plugins/crypter/SharingmatrixComFolder.py
index eb1b4d8a6..399e5c386 100644
--- a/module/plugins/crypter/SharingmatrixComFolder.py
+++ b/module/plugins/crypter/SharingmatrixComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class SharingmatrixComFolder(DeadCrypter):
__name__ = "SharingmatrixComFolder"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?sharingmatrix\.com/folder/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/SpeedLoadOrgFolder.py b/module/plugins/crypter/SpeedLoadOrgFolder.py
index af768ef7b..14e988a57 100644
--- a/module/plugins/crypter/SpeedLoadOrgFolder.py
+++ b/module/plugins/crypter/SpeedLoadOrgFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class SpeedLoadOrgFolder(DeadCrypter):
__name__ = "SpeedLoadOrgFolder"
__type__ = "crypter"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'http://(?:www\.)?speedload\.org/(\d+~f$|folder/\d+/)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/StealthTo.py b/module/plugins/crypter/StealthTo.py
index 551468980..c715af7b7 100644
--- a/module/plugins/crypter/StealthTo.py
+++ b/module/plugins/crypter/StealthTo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class StealthTo(DeadCrypter):
__name__ = "StealthTo"
__type__ = "crypter"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?stealth\.to/folder/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/TNTVillageScambioeticoOrg.py b/module/plugins/crypter/TNTVillageScambioeticoOrg.py
index 5606b8a7f..f812e0edc 100644
--- a/module/plugins/crypter/TNTVillageScambioeticoOrg.py
+++ b/module/plugins/crypter/TNTVillageScambioeticoOrg.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class TNTVillageScambioeticoOrg(SimpleCrypter):
__name__ = "TNTVillageScambioeticoOrg"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?forum\.tntvillage\.scambioetico\.org/index\.php\?.*showtopic=\d+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package']
@@ -20,7 +20,7 @@ class TNTVillageScambioeticoOrg(SimpleCrypter):
LINK_PATTERNS = [r'<th class="titlemedium"><a href=\'(.+?)\'', r"<a href='(\./index\.php\?act.+?)'"]
- def getLinks(self):
+ def get_links(self):
for p in self.LINK_PATTERNS:
self.LINK_PATTERN = p
links = super(TNTVillageScambioeticoOrg, self).getLinks()
diff --git a/module/plugins/crypter/TinyurlCom.py b/module/plugins/crypter/TinyurlCom.py
index e2cf50358..5a8e0607e 100644
--- a/module/plugins/crypter/TinyurlCom.py
+++ b/module/plugins/crypter/TinyurlCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class TinyurlCom(SimpleCrypter):
__name__ = "TinyurlCom"
__type__ = "crypter"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?(preview\.)?tinyurl\.com/[\w-]+'
diff --git a/module/plugins/crypter/TnyCz.py b/module/plugins/crypter/TnyCz.py
index 56c737969..4ba774af7 100644
--- a/module/plugins/crypter/TnyCz.py
+++ b/module/plugins/crypter/TnyCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class TnyCz(SimpleCrypter):
__name__ = "TnyCz"
__type__ = "crypter"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?tny\.cz/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -23,7 +23,7 @@ class TnyCz(SimpleCrypter):
NAME_PATTERN = r'<title>(?P<N>.+?) - .+</title>'
- def getLinks(self):
+ def get_links(self):
m = re.search(r'<a id=\'save_paste\' href="(.+save\.php\?hash=.+)">', self.html)
return re.findall(".+", self.load(m.group(1))) if m else None
diff --git a/module/plugins/crypter/TrailerzoneInfo.py b/module/plugins/crypter/TrailerzoneInfo.py
index 6f1c90612..cc4e31c0c 100644
--- a/module/plugins/crypter/TrailerzoneInfo.py
+++ b/module/plugins/crypter/TrailerzoneInfo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class TrailerzoneInfo(DeadCrypter):
__name__ = "TrailerzoneInfo"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?trailerzone\.info/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/TurbobitNetFolder.py b/module/plugins/crypter/TurbobitNetFolder.py
index 2ffcfae13..f8e56712f 100644
--- a/module/plugins/crypter/TurbobitNetFolder.py
+++ b/module/plugins/crypter/TurbobitNetFolder.py
@@ -9,7 +9,7 @@ from module.common.json_layer import json_loads
class TurbobitNetFolder(SimpleCrypter):
__name__ = "TurbobitNetFolder"
__type__ = "crypter"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?turbobit\.net/download/folder/(?P<ID>\w+)'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -25,7 +25,7 @@ class TurbobitNetFolder(SimpleCrypter):
NAME_PATTERN = r'src=\'/js/lib/grid/icon/folder.png\'> <span>(?P<N>.+?)</span>'
- def _getLinks(self, id, page=1):
+ def _get_links(self, id, page=1):
gridFile = self.load("http://turbobit.net/downloadfolder/gridFile",
get={"rootId": id, "rows": 200, "page": page})
grid = json_loads(gridFile)
@@ -33,16 +33,16 @@ class TurbobitNetFolder(SimpleCrypter):
if grid['rows']:
for i in grid['rows']:
yield i['id']
- for id in self._getLinks(id, page + 1):
+ for id in self._get_links(id, page + 1):
yield id
else:
return
- def getLinks(self):
+ def get_links(self):
id = re.match(self.__pattern__, self.pyfile.url).group('ID')
fixurl = lambda id: "http://turbobit.net/%s.html" % id
- return map(fixurl, self._getLinks(id))
+ return map(fixurl, self._get_links(id))
getInfo = create_getInfo(TurbobitNetFolder)
diff --git a/module/plugins/crypter/TusfilesNetFolder.py b/module/plugins/crypter/TusfilesNetFolder.py
index b8840132f..a5871e1f4 100644
--- a/module/plugins/crypter/TusfilesNetFolder.py
+++ b/module/plugins/crypter/TusfilesNetFolder.py
@@ -10,7 +10,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo
class TusfilesNetFolder(XFSCrypter):
__name__ = "TusfilesNetFolder"
__type__ = "crypter"
- __version__ = "0.08"
+ __version__ = "0.09"
__pattern__ = r'https?://(?:www\.)?tusfiles\.net/go/(?P<ID>\w+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -27,11 +27,11 @@ class TusfilesNetFolder(XFSCrypter):
URL_REPLACEMENTS = [(__pattern__ + ".*", r'https://www.tusfiles.net/go/\g<ID>/')]
- def loadPage(self, page_n):
+ def load_page(self, page_n):
return self.load(urlparse.urljoin(self.pyfile.url, str(page_n)))
- def handlePages(self, pyfile):
+ def handle_pages(self, pyfile):
pages = re.search(self.PAGES_PATTERN, self.html)
if pages:
pages = int(math.ceil(int(pages.group('pages')) / 25.0))
@@ -39,8 +39,8 @@ class TusfilesNetFolder(XFSCrypter):
return
for p in xrange(2, pages + 1):
- self.html = self.loadPage(p)
- self.links += self.getLinks()
+ self.html = self.load_page(p)
+ self.links += self.get_links()
getInfo = create_getInfo(TusfilesNetFolder)
diff --git a/module/plugins/crypter/UlozToFolder.py b/module/plugins/crypter/UlozToFolder.py
index 6e2c15c87..52789c00c 100644
--- a/module/plugins/crypter/UlozToFolder.py
+++ b/module/plugins/crypter/UlozToFolder.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter
class UlozToFolder(Crypter):
__name__ = "UlozToFolder"
__type__ = "crypter"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj\.cz|zachowajto\.pl)/(m|soubory)/.+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
@@ -28,7 +28,7 @@ class UlozToFolder(Crypter):
new_links = []
for i in xrange(1, 100):
- self.logInfo(_("Fetching links from page %i") % i)
+ self.log_info(_("Fetching links from page %i") % i)
m = re.search(self.FOLDER_PATTERN, html, re.S)
if m is None:
self.error(_("FOLDER_PATTERN not found"))
@@ -40,7 +40,7 @@ class UlozToFolder(Crypter):
else:
break
else:
- self.logInfo(_("Limit of 99 pages reached, aborting"))
+ self.log_info(_("Limit of 99 pages reached, aborting"))
if new_links:
self.urls = [map(lambda s: "http://ulozto.net/%s" % s, new_links)]
diff --git a/module/plugins/crypter/UploadableChFolder.py b/module/plugins/crypter/UploadableChFolder.py
index 849aaceea..0df613978 100644
--- a/module/plugins/crypter/UploadableChFolder.py
+++ b/module/plugins/crypter/UploadableChFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class UploadableChFolder(SimpleCrypter):
__name__ = "UploadableChFolder"
__type__ = "crypter"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
diff --git a/module/plugins/crypter/UploadedToFolder.py b/module/plugins/crypter/UploadedToFolder.py
index 384168030..7233a1293 100644
--- a/module/plugins/crypter/UploadedToFolder.py
+++ b/module/plugins/crypter/UploadedToFolder.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class UploadedToFolder(SimpleCrypter):
__name__ = "UploadedToFolder"
__type__ = "crypter"
- __version__ = "0.43"
+ __version__ = "0.44"
__pattern__ = r'https?://(?:www\.)?(uploaded|ul)\.(to|net)/(f|folder|list)/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/WiiReloadedOrg.py b/module/plugins/crypter/WiiReloadedOrg.py
index eddc0e5d1..48ab22219 100644
--- a/module/plugins/crypter/WiiReloadedOrg.py
+++ b/module/plugins/crypter/WiiReloadedOrg.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class WiiReloadedOrg(DeadCrypter):
__name__ = "WiiReloadedOrg"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?wii-reloaded\.org/protect/get\.php\?i=.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/WuploadComFolder.py b/module/plugins/crypter/WuploadComFolder.py
index dece467a2..d176ec292 100644
--- a/module/plugins/crypter/WuploadComFolder.py
+++ b/module/plugins/crypter/WuploadComFolder.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo
class WuploadComFolder(DeadCrypter):
__name__ = "WuploadComFolder"
__type__ = "crypter"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?wupload\.com/folder/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/crypter/XFileSharingProFolder.py b/module/plugins/crypter/XFileSharingProFolder.py
index 70e7365dd..b9b1b4f23 100644
--- a/module/plugins/crypter/XFileSharingProFolder.py
+++ b/module/plugins/crypter/XFileSharingProFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo
class XFileSharingProFolder(XFSCrypter):
__name__ = "XFileSharingProFolder"
__type__ = "crypter"
- __version__ = "0.08"
+ __version__ = "0.09"
__pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:user|folder)s?/\w+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/XupPl.py b/module/plugins/crypter/XupPl.py
index 9dff23215..d72f69293 100644
--- a/module/plugins/crypter/XupPl.py
+++ b/module/plugins/crypter/XupPl.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Crypter import Crypter
class XupPl(Crypter):
__name__ = "XupPl"
__type__ = "crypter"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'https?://(?:[^/]*\.)?xup\.pl/.+'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True),
diff --git a/module/plugins/crypter/YoutubeComFolder.py b/module/plugins/crypter/YoutubeComFolder.py
index fed832b7d..4b11e1244 100644
--- a/module/plugins/crypter/YoutubeComFolder.py
+++ b/module/plugins/crypter/YoutubeComFolder.py
@@ -11,7 +11,7 @@ from module.utils import save_join as fs_join
class YoutubeComFolder(Crypter):
__name__ = "YoutubeComFolder"
__type__ = "crypter"
- __version__ = "1.02"
+ __version__ = "1.03"
__pattern__ = r'https?://(?:www\.|m\.)?youtube\.com/(?P<TYPE>user|playlist|view_play_list)(/|.*?[?&](?:list|p)=)(?P<ID>[\w-]+)'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True ),
@@ -35,7 +35,7 @@ class YoutubeComFolder(Crypter):
return json_loads(html)
- def getChannel(self, user):
+ def get_channel(self, user):
channels = self.api_response("channels", {"part": "id,snippet,contentDetails", "forUsername": user, "maxResults": "50"})
if channels['items']:
channel = channels['items'][0]
@@ -45,7 +45,7 @@ class YoutubeComFolder(Crypter):
"user": user} #: One lone channel for user?
- def getPlaylist(self, p_id):
+ def get_playlist(self, p_id):
playlists = self.api_response("playlists", {"part": "snippet", "id": p_id})
if playlists['items']:
playlist = playlists['items'][0]
@@ -55,7 +55,7 @@ class YoutubeComFolder(Crypter):
"channelTitle": playlist['snippet']['channelTitle']}
- def _getPlaylists(self, id, token=None):
+ def _get_playlists(self, id, token=None):
req = {"part": "id", "maxResults": "50", "channelId": id}
if token:
req.update({"pageToken": token})
@@ -66,15 +66,15 @@ class YoutubeComFolder(Crypter):
yield playlist['id']
if "nextPageToken" in playlists:
- for item in self._getPlaylists(id, playlists['nextPageToken']):
+ for item in self._get_playlists(id, playlists['nextPageToken']):
yield item
- def getPlaylists(self, ch_id):
- return map(self.getPlaylist, self._getPlaylists(ch_id))
+ def get_playlists(self, ch_id):
+ return map(self.get_playlist, self._get_playlists(ch_id))
- def _getVideosId(self, id, token=None):
+ def _get_videos_id(self, id, token=None):
req = {"part": "contentDetails", "maxResults": "50", "playlistId": id}
if token:
req.update({"pageToken": token})
@@ -85,12 +85,12 @@ class YoutubeComFolder(Crypter):
yield item['contentDetails']['videoId']
if "nextPageToken" in playlist:
- for item in self._getVideosId(id, playlist['nextPageToken']):
+ for item in self._get_videos_id(id, playlist['nextPageToken']):
yield item
- def getVideosId(self, p_id):
- return list(self._getVideosId(p_id))
+ def get_videos_id(self, p_id):
+ return list(self._get_videos_id(p_id))
def decrypt(self, pyfile):
@@ -99,29 +99,29 @@ class YoutubeComFolder(Crypter):
m_type = m.group('TYPE')
if m_type == "user":
- self.logDebug("Url recognized as Channel")
+ self.log_debug("Url recognized as Channel")
user = m_id
- channel = self.getChannel(user)
+ channel = self.get_channel(user)
if channel:
- playlists = self.getPlaylists(channel['id'])
- self.logDebug("%s playlist\s found on channel \"%s\"" % (len(playlists), channel['title']))
+ playlists = self.get_playlists(channel['id'])
+ self.log_debug("%s playlist\s found on channel \"%s\"" % (len(playlists), channel['title']))
- relatedplaylist = {p_name: self.getPlaylist(p_id) for p_name, p_id in channel['relatedPlaylists'].iteritems()}
- self.logDebug("Channel's related playlists found = %s" % relatedplaylist.keys())
+ relatedplaylist = {p_name: self.get_playlist(p_id) for p_name, p_id in channel['relatedPlaylists'].iteritems()}
+ self.log_debug("Channel's related playlists found = %s" % relatedplaylist.keys())
relatedplaylist['uploads']['title'] = "Unplaylisted videos"
relatedplaylist['uploads']['checkDups'] = True #: checkDups flag
for p_name, p_data in relatedplaylist.iteritems():
- if self.getConfig(p_name):
+ if self.get_config(p_name):
p_data['title'] += " of " + user
playlists.append(p_data)
else:
playlists = []
else:
- self.logDebug("Url recognized as Playlist")
- playlists = [self.getPlaylist(m_id)]
+ self.log_debug("Url recognized as Playlist")
+ playlists = [self.get_playlist(m_id)]
if not playlists:
self.fail(_("No playlist available"))
@@ -130,15 +130,15 @@ class YoutubeComFolder(Crypter):
urlize = lambda x: "https://www.youtube.com/watch?v=" + x
for p in playlists:
p_name = p['title']
- p_videos = self.getVideosId(p['id'])
+ p_videos = self.get_videos_id(p['id'])
p_folder = fs_join(self.core.config.get("general", "download_folder"), p['channelTitle'], p_name)
- self.logDebug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name))
+ self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name))
if not p_videos:
continue
elif "checkDups" in p:
p_urls = [urlize(v_id) for v_id in p_videos if v_id not in addedvideos]
- self.logDebug("%s video\s available on playlist \"%s\" after duplicates cleanup" % (len(p_urls), p_name))
+ self.log_debug("%s video\s available on playlist \"%s\" after duplicates cleanup" % (len(p_urls), p_name))
else:
p_urls = map(urlize, p_videos)
diff --git a/module/plugins/hooks/AlldebridComHook.py b/module/plugins/hooks/AlldebridComHook.py
index de24b86ed..9af1cf02f 100644
--- a/module/plugins/hooks/AlldebridComHook.py
+++ b/module/plugins/hooks/AlldebridComHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class AlldebridComHook(MultiHook):
__name__ = "AlldebridComHook"
__type__ = "hook"
- __version__ = "0.16"
+ __version__ = "0.17"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,7 +18,7 @@ class AlldebridComHook(MultiHook):
__authors__ = [("Andy Voigt", "spamsales@online.de")]
- def getHosters(self):
+ def get_hosters(self):
html = self.load("https://www.alldebrid.com/api.php",
get={'action': "get_host"}).replace("\"", "").strip()
return [x.strip() for x in html.split(",") if x.strip()]
diff --git a/module/plugins/hooks/AndroidPhoneNotify.py b/module/plugins/hooks/AndroidPhoneNotify.py
index daf4c1a27..1cea0c994 100644
--- a/module/plugins/hooks/AndroidPhoneNotify.py
+++ b/module/plugins/hooks/AndroidPhoneNotify.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook, Expose
class AndroidPhoneNotify(Hook):
__name__ = "AndroidPhoneNotify"
__type__ = "hook"
- __version__ = "0.09"
+ __version__ = "0.10"
__config__ = [("apikey" , "str" , "API key" , "" ),
("notifycaptcha" , "bool", "Notify captcha request" , True ),
@@ -32,25 +32,26 @@ class AndroidPhoneNotify(Hook):
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- self.event_list = ["allDownloadsProcessed", "plugin_updated"]
+ self.event_list = ["plugin_updated"]
+ self.event_map = {'allDownloadsProcessed': "all_downloads_processed"}
self.last_notify = 0
self.notifications = 0
def plugin_updated(self, type_plugins):
- if not self.getConfig('notifyupdate'):
+ if not self.get_config('notifyupdate'):
return
self.notify(_("Plugins updated"), str(type_plugins))
def activate(self):
- self.key = self.getConfig('apikey')
+ self.key = self.get_config('apikey')
def exit(self):
- if not self.getConfig('notifyexit'):
+ if not self.get_config('notifyexit'):
return
if self.core.do_restart:
@@ -60,19 +61,19 @@ class AndroidPhoneNotify(Hook):
def captcha_task(self, task):
- if not self.getConfig('notifycaptcha'):
+ if not self.get_config('notifycaptcha'):
return
self.notify(_("Captcha"), _("New request waiting user input"))
def package_finished(self, pypack):
- if self.getConfig('notifypackage'):
+ if self.get_config('notifypackage'):
self.notify(_("Package finished"), pypack.name)
- def allDownloadsProcessed(self):
- if not self.getConfig('notifyprocessed'):
+ def all_downloads_processed(self):
+ if not self.get_config('notifyprocessed'):
return
if any(True for pdata in self.core.api.getQueue() if pdata.linksdone < pdata.linkstotal):
@@ -91,18 +92,18 @@ class AndroidPhoneNotify(Hook):
if not key:
return
- if self.core.isClientConnected() and not self.getConfig('ignoreclient'):
+ if self.core.isClientConnected() and not self.get_config('ignoreclient'):
return
elapsed_time = time.time() - self.last_notify
- if elapsed_time < self.getConfig("sendtimewait"):
+ if elapsed_time < self.get_config("sendtimewait"):
return
if elapsed_time > 60:
self.notifications = 0
- elif self.notifications >= self.getConfig("sendpermin"):
+ elif self.notifications >= self.get_config("sendpermin"):
return
self.load("http://www.notifymyandroid.com/publicapi/notify",
diff --git a/module/plugins/hooks/AntiVirus.py b/module/plugins/hooks/AntiVirus.py
index 02b1df67b..cb9d5aaa6 100644
--- a/module/plugins/hooks/AntiVirus.py
+++ b/module/plugins/hooks/AntiVirus.py
@@ -16,7 +16,7 @@ from module.utils import fs_encode, save_join as fs_join
class AntiVirus(Hook):
__name__ = "AntiVirus"
__type__ = "hook"
- __version__ = "0.10"
+ __version__ = "0.11"
#@TODO: add trash option (use Send2Trash lib)
__config__ = [("action" , "Antivirus default;Delete;Quarantine", "Manage infected files" , "Antivirus default"),
@@ -44,8 +44,8 @@ class AntiVirus(Hook):
def scan(self, pyfile, thread):
file = fs_encode(pyfile.plugin.lastDownload)
filename = os.path.basename(pyfile.plugin.lastDownload)
- cmdfile = fs_encode(self.getConfig('cmdfile'))
- cmdargs = fs_encode(self.getConfig('cmdargs').strip())
+ cmdfile = fs_encode(self.get_config('cmdfile'))
+ cmdargs = fs_encode(self.get_config('cmdargs').strip())
if not os.path.isfile(file) or not os.path.isfile(cmdfile):
return
@@ -60,20 +60,20 @@ class AntiVirus(Hook):
out, err = map(str.strip, p.communicate())
if out:
- self.logInfo(filename, out)
+ self.log_info(filename, out)
if err:
- self.logWarning(filename, err)
- if not self.getConfig('ignore-err'):
- self.logDebug("Delete/Quarantine task is aborted")
+ self.log_warning(filename, err)
+ if not self.get_config('ignore-err'):
+ self.log_debug("Delete/Quarantine task is aborted")
return
if p.returncode:
pyfile.error = _("infected file")
- action = self.getConfig('action')
+ action = self.get_config('action')
try:
if action == "Delete":
- if not self.getConfig('deltotrash'):
+ if not self.get_config('deltotrash'):
os.remove(file)
else:
@@ -81,27 +81,27 @@ class AntiVirus(Hook):
send2trash.send2trash(file)
except NameError:
- self.logWarning(_("Send2Trash lib not found, moving to quarantine instead"))
+ self.log_warning(_("Send2Trash lib not found, moving to quarantine instead"))
pyfile.setCustomStatus(_("file moving"))
- shutil.move(file, self.getConfig('quardir'))
+ shutil.move(file, self.get_config('quardir'))
except Exception, e:
- self.logWarning(_("Unable to move file to trash: %s, moving to quarantine instead") % e.message)
+ self.log_warning(_("Unable to move file to trash: %s, moving to quarantine instead") % e.message)
pyfile.setCustomStatus(_("file moving"))
- shutil.move(file, self.getConfig('quardir'))
+ shutil.move(file, self.get_config('quardir'))
else:
- self.logDebug("Successfully moved file to trash")
+ self.log_debug("Successfully moved file to trash")
elif action == "Quarantine":
pyfile.setCustomStatus(_("file moving"))
- shutil.move(file, self.getConfig('quardir'))
+ shutil.move(file, self.get_config('quardir'))
except (IOError, shutil.Error), e:
- self.logError(filename, action + " action failed!", e)
+ self.log_error(filename, action + " action failed!", e)
elif not out and not err:
- self.logDebug(filename, "No infected file found")
+ self.log_debug(filename, "No infected file found")
finally:
pyfile.setProgress(100)
@@ -114,5 +114,5 @@ class AntiVirus(Hook):
def download_failed(self, pyfile):
#: Check if pyfile is still "failed", maybe might has been restarted in meantime
- if pyfile.status == 8 and self.getConfig('scanfailed'):
+ if pyfile.status == 8 and self.get_config('scanfailed'):
return self.scan(pyfile)
diff --git a/module/plugins/hooks/BypassCaptcha.py b/module/plugins/hooks/BypassCaptcha.py
index 4869288c9..cb91c06ce 100644
--- a/module/plugins/hooks/BypassCaptcha.py
+++ b/module/plugins/hooks/BypassCaptcha.py
@@ -13,7 +13,7 @@ class BypassCaptchaException(Exception):
self.err = err
- def getCode(self):
+ def get_code(self):
return self.err
@@ -28,7 +28,7 @@ class BypassCaptchaException(Exception):
class BypassCaptcha(Hook):
__name__ = "BypassCaptcha"
__type__ = "hook"
- __version__ = "0.07"
+ __version__ = "0.08"
__config__ = [("passkey" , "password", "Access key" , "" ),
("check_client", "bool" , "Don't use if client is connected", True)]
@@ -53,8 +53,8 @@ class BypassCaptcha(Hook):
self.info = {} #@TODO: Remove in 0.4.10
- def getCredits(self):
- res = self.load(self.GETCREDITS_URL, post={"key": self.getConfig('passkey')})
+ def get_credits(self):
+ res = self.load(self.GETCREDITS_URL, post={"key": self.get_config('passkey')})
data = dict(x.split(' ', 1) for x in res.splitlines())
return int(data['Left'])
@@ -63,13 +63,13 @@ class BypassCaptcha(Hook):
def submit(self, captcha, captchaType="file", match=None):
req = getRequest()
- #raise timeout threshold
+ # raise timeout threshold
req.c.setopt(pycurl.LOW_SPEED_TIME, 80)
try:
res = self.load(self.SUBMIT_URL,
post={'vendor_key': self.PYLOAD_KEY,
- 'key': self.getConfig('passkey'),
+ 'key': self.get_config('passkey'),
'gen_task_id': "1",
'file': (pycurl.FORM_FILE, captcha)},
req=req)
@@ -82,17 +82,17 @@ class BypassCaptcha(Hook):
result = data['Value']
ticket = data['TaskId']
- self.logDebug("Result %s : %s" % (ticket, result))
+ self.log_debug("Result %s : %s" % (ticket, result))
return ticket, result
def respond(self, ticket, success):
try:
- res = self.load(self.RESPOND_URL, post={"task_id": ticket, "key": self.getConfig('passkey'),
+ res = self.load(self.RESPOND_URL, post={"task_id": ticket, "key": self.get_config('passkey'),
"cv": 1 if success else 0})
except BadHeader, e:
- self.logError(_("Could not send response"), e)
+ self.log_error(_("Could not send response"), e)
def captcha_task(self, task):
@@ -102,20 +102,20 @@ class BypassCaptcha(Hook):
if not task.isTextual():
return False
- if not self.getConfig('passkey'):
+ if not self.get_config('passkey'):
return False
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return False
- if self.getCredits() > 0:
+ if self.get_credits() > 0:
task.handler.append(self)
task.data['service'] = self.__name__
task.setWaiting(100)
- self._processCaptcha(task)
+ self._process_captcha(task)
else:
- self.logInfo(_("Your %s account has not enough credits") % self.__name__)
+ self.log_info(_("Your %s account has not enough credits") % self.__name__)
def captcha_correct(self, task):
@@ -129,7 +129,7 @@ class BypassCaptcha(Hook):
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
c = task.captchaFile
try:
ticket, result = self.submit(c)
diff --git a/module/plugins/hooks/Captcha9Kw.py b/module/plugins/hooks/Captcha9Kw.py
index aaea232f7..0ef67e54d 100644
--- a/module/plugins/hooks/Captcha9Kw.py
+++ b/module/plugins/hooks/Captcha9Kw.py
@@ -14,7 +14,7 @@ from module.plugins.internal.Hook import Hook, threaded
class Captcha9Kw(Hook):
__name__ = "Captcha9Kw"
__type__ = "hook"
- __version__ = "0.29"
+ __version__ = "0.30"
__config__ = [("check_client" , "bool" , "Don't use if client is connected" , True ),
("confirm" , "bool" , "Confirm Captcha (cost +6 credits)" , False ),
@@ -42,30 +42,30 @@ class Captcha9Kw(Hook):
self.info = {} #@TODO: Remove in 0.4.10
- def getCredits(self):
+ def get_credits(self):
res = self.load(self.API_URL,
- get={'apikey': self.getConfig('passkey'),
+ get={'apikey': self.get_config('passkey'),
'pyload': "1",
'source': "pyload",
'action': "usercaptchaguthaben"})
if res.isdigit():
- self.logInfo(_("%s credits left") % res)
+ self.log_info(_("%s credits left") % res)
credits = self.info['credits'] = int(res)
return credits
else:
- self.logError(res)
+ self.log_error(res)
return 0
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
try:
with open(task.captchaFile, 'rb') as f:
data = f.read()
except IOError, e:
- self.logError(e)
+ self.log_error(e)
return
pluginname = re.search(r'_([^_]*)_\d+.\w+', task.captchaFile).group(1)
@@ -75,14 +75,14 @@ class Captcha9Kw(Hook):
'numeric' : 0,
'case_sensitive': 0,
'math' : 0,
- 'prio' : min(max(self.getConfig('prio'), 0), 10),
- 'confirm' : self.getConfig('confirm'),
- 'timeout' : min(max(self.getConfig('timeout'), 300), 3999),
- 'selfsolve' : self.getConfig('selfsolve'),
- 'cph' : self.getConfig('captchaperhour'),
- 'cpm' : self.getConfig('captchapermin')}
+ 'prio' : min(max(self.get_config('prio'), 0), 10),
+ 'confirm' : self.get_config('confirm'),
+ 'timeout' : min(max(self.get_config('timeout'), 300), 3999),
+ 'selfsolve' : self.get_config('selfsolve'),
+ 'cph' : self.get_config('captchaperhour'),
+ 'cpm' : self.get_config('captchapermin')}
- for opt in str(self.getConfig('hoster_options').split('|')):
+ for opt in str(self.get_config('hoster_options').split('|')):
details = map(str.strip, opt.split(':'))
@@ -101,7 +101,7 @@ class Captcha9Kw(Hook):
break
- post_data = {'apikey' : self.getConfig('passkey'),
+ post_data = {'apikey' : self.get_config('passkey'),
'prio' : option['prio'],
'confirm' : option['confirm'],
'maxtimeout' : option['timeout'],
@@ -131,16 +131,16 @@ class Captcha9Kw(Hook):
if res and res.isdigit():
break
else:
- self.logError(_("Bad upload: %s") % res)
+ self.log_error(_("Bad upload: %s") % res)
return
- self.logDebug("NewCaptchaID ticket: %s" % res, task.captchaFile)
+ self.log_debug("NewCaptchaID ticket: %s" % res, task.captchaFile)
task.data['ticket'] = res
- for _i in xrange(int(self.getConfig('timeout') / 5)):
+ for _i in xrange(int(self.get_config('timeout') / 5)):
result = self.load(self.API_URL,
- get={'apikey': self.getConfig('passkey'),
+ get={'apikey': self.get_config('passkey'),
'id' : res,
'pyload': "1",
'info' : "1",
@@ -152,10 +152,10 @@ class Captcha9Kw(Hook):
else:
break
else:
- self.logDebug("Could not send request: %s" % res)
+ self.log_debug("Could not send request: %s" % res)
result = None
- self.logInfo(_("Captcha result for ticket %s: %s") % (res, result))
+ self.log_info(_("Captcha result for ticket %s: %s") % (res, result))
task.setResult(result)
@@ -164,20 +164,20 @@ class Captcha9Kw(Hook):
if not task.isTextual() and not task.isPositional():
return
- if not self.getConfig('passkey'):
+ if not self.get_config('passkey'):
return
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return
- credits = self.getCredits()
+ credits = self.get_credits()
if not credits:
- self.logError(_("Your captcha 9kw.eu account has not enough credits"))
+ self.log_error(_("Your captcha 9kw.eu account has not enough credits"))
return
- queue = min(self.getConfig('queue'), 999)
- timeout = min(max(self.getConfig('timeout'), 300), 3999)
+ queue = min(self.get_config('queue'), 999)
+ timeout = min(max(self.get_config('timeout'), 300), 3999)
pluginname = re.search(r'_([^_]*)_\d+.\w+', task.captchaFile).group(1)
for _i in xrange(5):
@@ -189,7 +189,7 @@ class Captcha9Kw(Hook):
else:
self.fail(_("Too many captchas in queue"))
- for opt in str(self.getConfig('hoster_options').split('|')):
+ for opt in str(self.get_config('hoster_options').split('|')):
details = map(str.strip, opt.split(':'))
if not details or details[0].lower() != pluginname.lower():
@@ -209,17 +209,17 @@ class Captcha9Kw(Hook):
task.setWaiting(timeout)
- self._processCaptcha(task)
+ self._process_captcha(task)
- def _captchaResponse(self, task, correct):
+ def _captcha_response(self, task, correct):
type = "correct" if correct else "refund"
if 'ticket' not in task.data:
- self.logDebug("No CaptchaID for %s request (task: %s)" % (type, task))
+ self.log_debug("No CaptchaID for %s request (task: %s)" % (type, task))
return
- passkey = self.getConfig('passkey')
+ passkey = self.get_config('passkey')
for _i in xrange(3):
res = self.load(self.API_URL,
@@ -231,19 +231,19 @@ class Captcha9Kw(Hook):
'source' : "pyload",
'id' : task.data['ticket']})
- self.logDebug("Request %s: %s" % (type, res))
+ self.log_debug("Request %s: %s" % (type, res))
if res == "OK":
break
time.sleep(5)
else:
- self.logDebug("Could not send %s request: %s" % (type, res))
+ self.log_debug("Could not send %s request: %s" % (type, res))
def captcha_correct(self, task):
- self._captchaResponse(task, True)
+ self._captcha_response(task, True)
def captcha_invalid(self, task):
- self._captchaResponse(task, False)
+ self._captcha_response(task, False)
diff --git a/module/plugins/hooks/CaptchaBrotherhood.py b/module/plugins/hooks/CaptchaBrotherhood.py
index 070d92da8..b2f370f32 100644
--- a/module/plugins/hooks/CaptchaBrotherhood.py
+++ b/module/plugins/hooks/CaptchaBrotherhood.py
@@ -22,7 +22,7 @@ class CaptchaBrotherhoodException(Exception):
self.err = err
- def getCode(self):
+ def get_code(self):
return self.err
@@ -37,7 +37,7 @@ class CaptchaBrotherhoodException(Exception):
class CaptchaBrotherhood(Hook):
__name__ = "CaptchaBrotherhood"
__type__ = "hook"
- __version__ = "0.09"
+ __version__ = "0.10"
__config__ = [("username" , "str" , "Username" , "" ),
("password" , "password", "Password" , "" ),
@@ -58,14 +58,14 @@ class CaptchaBrotherhood(Hook):
self.info = {} #@TODO: Remove in 0.4.10
- def getCredits(self):
+ def get_credits(self):
res = self.load(self.API_URL + "askCredits.aspx",
- get={"username": self.getConfig('username'), "password": self.getConfig('password')})
+ get={"username": self.get_config('username'), "password": self.get_config('password')})
if not res.startswith("OK"):
raise CaptchaBrotherhoodException(res)
else:
credits = int(res[3:])
- self.logInfo(_("%d credits left") % credits)
+ self.log_info(_("%d credits left") % credits)
self.info['credits'] = credits
return credits
@@ -74,7 +74,7 @@ class CaptchaBrotherhood(Hook):
try:
img = Image.open(captcha)
output = StringIO.StringIO()
- self.logDebug("CAPTCHA IMAGE", img, img.format, img.mode)
+ self.log_debug("CAPTCHA IMAGE", img, img.format, img.mode)
if img.format in ("GIF", "JPEG"):
img.save(output, img.format)
else:
@@ -89,8 +89,8 @@ class CaptchaBrotherhood(Hook):
req = getRequest()
url = "%ssendNewCaptcha.aspx?%s" % (self.API_URL,
- urllib.urlencode({'username' : self.getConfig('username'),
- 'password' : self.getConfig('password'),
+ urllib.urlencode({'username' : self.get_config('username'),
+ 'password' : self.get_config('password'),
'captchaSource': "pyLoad",
'timeout' : "80"}))
@@ -123,8 +123,8 @@ class CaptchaBrotherhood(Hook):
def api_response(self, api, ticket):
res = self.load("%s%s.aspx" % (self.API_URL, api),
- get={"username": self.getConfig('username'),
- "password": self.getConfig('password'),
+ get={"username": self.get_config('username'),
+ "password": self.get_config('password'),
"captchaID": ticket})
if not res.startswith("OK"):
raise CaptchaBrotherhoodException("Unknown response: %s" % res)
@@ -139,19 +139,19 @@ class CaptchaBrotherhood(Hook):
if not task.isTextual():
return False
- if not self.getConfig('username') or not self.getConfig('password'):
+ if not self.get_config('username') or not self.get_config('password'):
return False
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return False
- if self.getCredits() > 10:
+ if self.get_credits() > 10:
task.handler.append(self)
task.data['service'] = self.__name__
task.setWaiting(100)
- self._processCaptcha(task)
+ self._process_captcha(task)
else:
- self.logInfo(_("Your CaptchaBrotherhood Account has not enough credits"))
+ self.log_info(_("Your CaptchaBrotherhood Account has not enough credits"))
def captcha_invalid(self, task):
@@ -160,7 +160,7 @@ class CaptchaBrotherhood(Hook):
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
c = task.captchaFile
try:
ticket, result = self.submit(c)
diff --git a/module/plugins/hooks/Checksum.py b/module/plugins/hooks/Checksum.py
index 409387c39..7f42347df 100644
--- a/module/plugins/hooks/Checksum.py
+++ b/module/plugins/hooks/Checksum.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Hook import Hook
from module.utils import save_join as fs_join, fs_encode
-def computeChecksum(local_file, algorithm):
+def compute_checksum(local_file, algorithm):
if algorithm in getattr(hashlib, "algorithms", ("md5", "sha1", "sha224", "sha256", "sha384", "sha512")):
h = getattr(hashlib, algorithm)()
@@ -38,7 +38,7 @@ def computeChecksum(local_file, algorithm):
class Checksum(Hook):
__name__ = "Checksum"
__type__ = "hook"
- __version__ = "0.17"
+ __version__ = "0.18"
__config__ = [("check_checksum", "bool" , "Check checksum? (If False only size will be verified)", True ),
("check_action" , "fail;retry;nothing", "What to do if check fails?" , "retry"),
@@ -64,8 +64,8 @@ class Checksum(Hook):
def activate(self):
- if not self.getConfig('check_checksum'):
- self.logInfo(_("Checksum validation is disabled in plugin configuration"))
+ if not self.get_config('check_checksum'):
+ self.log_info(_("Checksum validation is disabled in plugin configuration"))
def setup(self):
@@ -98,17 +98,17 @@ class Checksum(Hook):
else:
return
- self.logDebug(data)
+ self.log_debug(data)
if not pyfile.plugin.lastDownload:
- self.checkFailed(pyfile, None, "No file downloaded")
+ self.check_failed(pyfile, None, "No file downloaded")
local_file = fs_encode(pyfile.plugin.lastDownload)
- #download_folder = self.core.config.get("general", "download_folder")
- #local_file = fs_encode(fs_join(download_folder, pyfile.package().folder, pyfile.name))
+ # download_folder = self.core.config.get("general", "download_folder")
+ # local_file = fs_encode(fs_join(download_folder, pyfile.package().folder, pyfile.name))
if not os.path.isfile(local_file):
- self.checkFailed(pyfile, None, "File does not exist")
+ self.check_failed(pyfile, None, "File does not exist")
#: validate file size
if "size" in data:
@@ -116,13 +116,13 @@ class Checksum(Hook):
file_size = os.path.getsize(local_file)
if api_size != file_size:
- self.logWarning(_("File %s has incorrect size: %d B (%d expected)") % (pyfile.name, file_size, api_size))
- self.checkFailed(pyfile, local_file, "Incorrect file size")
+ self.log_warning(_("File %s has incorrect size: %d B (%d expected)") % (pyfile.name, file_size, api_size))
+ self.check_failed(pyfile, local_file, "Incorrect file size")
data.pop('size', None)
#: validate checksum
- if data and self.getConfig('check_checksum'):
+ if data and self.get_config('check_checksum'):
if not 'md5' in data:
for type in ("checksum", "hashsum", "hash"):
@@ -135,28 +135,28 @@ class Checksum(Hook):
checksum = computeChecksum(local_file, key.replace("-", "").lower())
if checksum:
if checksum == data[key].lower():
- self.logInfo(_('File integrity of "%s" verified by %s checksum (%s)') %
+ self.log_info(_('File integrity of "%s" verified by %s checksum (%s)') %
(pyfile.name, key.upper(), checksum))
break
else:
- self.logWarning(_("%s checksum for file %s does not match (%s != %s)") %
+ self.log_warning(_("%s checksum for file %s does not match (%s != %s)") %
(key.upper(), pyfile.name, checksum, data[key]))
- self.checkFailed(pyfile, local_file, "Checksums do not match")
+ self.check_failed(pyfile, local_file, "Checksums do not match")
else:
- self.logWarning(_("Unsupported hashing algorithm"), key.upper())
+ self.log_warning(_("Unsupported hashing algorithm"), key.upper())
else:
- self.logWarning(_("Unable to validate checksum for file: ") + pyfile.name)
+ self.log_warning(_("Unable to validate checksum for file: ") + pyfile.name)
- def checkFailed(self, pyfile, local_file, msg):
- check_action = self.getConfig('check_action')
+ def check_failed(self, pyfile, local_file, msg):
+ check_action = self.get_config('check_action')
if check_action == "retry":
- max_tries = self.getConfig('max_tries')
- retry_action = self.getConfig('retry_action')
+ max_tries = self.get_config('max_tries')
+ retry_action = self.get_config('retry_action')
if pyfile.plugin.retries < max_tries:
if local_file:
os.remove(local_file)
- pyfile.plugin.retry(max_tries, self.getConfig('wait_time'), msg)
+ pyfile.plugin.retry(max_tries, self.get_config('wait_time'), msg)
elif retry_action == "nothing":
return
elif check_action == "nothing":
@@ -175,7 +175,7 @@ class Checksum(Hook):
hash_file = fs_encode(fs_join(download_folder, link['name']))
if not os.path.isfile(hash_file):
- self.logWarning(_("File not found"), link['name'])
+ self.log_warning(_("File not found"), link['name'])
continue
with open(hash_file) as f:
@@ -183,14 +183,14 @@ class Checksum(Hook):
for m in re.finditer(self.regexps.get(file_type, self.regexps['default']), text):
data = m.groupdict()
- self.logDebug(link['name'], data)
+ self.log_debug(link['name'], data)
local_file = fs_encode(fs_join(download_folder, data['NAME']))
algorithm = self.methods.get(file_type, file_type)
checksum = computeChecksum(local_file, algorithm)
if checksum == data['HASH']:
- self.logInfo(_('File integrity of "%s" verified by %s checksum (%s)') %
+ self.log_info(_('File integrity of "%s" verified by %s checksum (%s)') %
(data['NAME'], algorithm, checksum))
else:
- self.logWarning(_("%s checksum for file %s does not match (%s != %s)") %
+ self.log_warning(_("%s checksum for file %s does not match (%s != %s)") %
(algorithm, data['NAME'], checksum, data['HASH']))
diff --git a/module/plugins/hooks/ClickAndLoad.py b/module/plugins/hooks/ClickAndLoad.py
index b1009420a..109452105 100644
--- a/module/plugins/hooks/ClickAndLoad.py
+++ b/module/plugins/hooks/ClickAndLoad.py
@@ -29,7 +29,7 @@ def forward(source, destination):
class ClickAndLoad(Hook):
__name__ = "ClickAndLoad"
__type__ = "hook"
- __version__ = "0.44"
+ __version__ = "0.45"
__config__ = [("activated", "bool", "Activated" , True),
("port" , "int" , "Port" , 9666),
@@ -52,9 +52,9 @@ class ClickAndLoad(Hook):
if not self.core.config.get("webinterface", "activated"):
return
- ip = "" if self.getConfig('extern') else "127.0.0.1"
+ ip = "" if self.get_config('extern') else "127.0.0.1"
webport = self.core.config.get("webinterface", "port")
- cnlport = self.getConfig('port')
+ cnlport = self.get_config('port')
self.proxy(ip, webport, cnlport)
@@ -63,7 +63,7 @@ class ClickAndLoad(Hook):
def proxy(self, ip, webport, cnlport):
time.sleep(10) #@TODO: Remove in 0.4.10 (implement addon delay on startup)
- self.logInfo(_("Proxy listening on %s:%s") % (ip or "0.0.0.0", cnlport))
+ self.log_info(_("Proxy listening on %s:%s") % (ip or "0.0.0.0", cnlport))
self._server(ip, webport, cnlport)
@@ -81,7 +81,7 @@ class ClickAndLoad(Hook):
while True:
client_socket, client_addr = dock_socket.accept()
- self.logDebug("Connection from %s:%s" % client_addr)
+ self.log_debug("Connection from %s:%s" % client_addr)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -90,12 +90,12 @@ class ClickAndLoad(Hook):
server_socket = ssl.wrap_socket(server_socket)
except NameError:
- self.logError(_("pyLoad's webinterface is configured to use HTTPS, Please install python's ssl lib or disable HTTPS"))
+ self.log_error(_("pyLoad's webinterface is configured to use HTTPS, Please install python's ssl lib or disable HTTPS"))
client_socket.close() #: reset the connection.
continue
except Exception, e:
- self.logError(_("SSL error: %s") % e.message)
+ self.log_error(_("SSL error: %s") % e.message)
client_socket.close() #: reset the connection.
continue
@@ -105,10 +105,10 @@ class ClickAndLoad(Hook):
self.manager.startThread(forward, server_socket, client_socket)
except socket.timeout:
- self.logDebug("Connection timed out, retrying...")
+ self.log_debug("Connection timed out, retrying...")
return self._server(ip, webport, cnlport)
except socket.error, e:
- self.logError(e)
+ self.log_error(e)
time.sleep(240)
return self._server(ip, webport, cnlport)
diff --git a/module/plugins/hooks/DeathByCaptcha.py b/module/plugins/hooks/DeathByCaptcha.py
index e0b319e12..ec2554a8f 100644
--- a/module/plugins/hooks/DeathByCaptcha.py
+++ b/module/plugins/hooks/DeathByCaptcha.py
@@ -29,11 +29,11 @@ class DeathByCaptchaException(Exception):
self.err = err
- def getCode(self):
+ def get_code(self):
return self.err
- def getDesc(self):
+ def get_desc(self):
if self.err in self.DBC_ERRORS.keys():
return self.DBC_ERRORS[self.err]
else:
@@ -51,7 +51,7 @@ class DeathByCaptchaException(Exception):
class DeathByCaptcha(Hook):
__name__ = "DeathByCaptcha"
__type__ = "hook"
- __version__ = "0.07"
+ __version__ = "0.08"
__config__ = [("username" , "str" , "Username" , "" ),
("password" , "password", "Password" , "" ),
@@ -79,8 +79,8 @@ class DeathByCaptcha(Hook):
if post:
if not isinstance(post, dict):
post = {}
- post.update({"username": self.getConfig('username'),
- "password": self.getConfig('password')})
+ post.update({"username": self.get_config('username'),
+ "password": self.get_config('password')})
res = None
try:
@@ -89,7 +89,7 @@ class DeathByCaptcha(Hook):
multipart=multipart,
req=req)
- self.logDebug(json)
+ self.log_debug(json)
res = json_loads(json)
if "error" in res:
@@ -115,7 +115,7 @@ class DeathByCaptcha(Hook):
return res
- def getCredits(self):
+ def get_credits(self):
res = self.api_response("user", True)
if 'is_banned' in res and res['is_banned']:
@@ -126,7 +126,7 @@ class DeathByCaptcha(Hook):
raise DeathByCaptchaException(res)
- def getStatus(self):
+ def get_status(self):
res = self.api_response("status", False)
if 'is_service_overloaded' in res and res['is_service_overloaded']:
@@ -135,7 +135,7 @@ class DeathByCaptcha(Hook):
def submit(self, captcha, captchaType="file", match=None):
#@NOTE: Workaround multipart-post bug in HTTPRequest.py
- if re.match("^\w*$", self.getConfig('password')):
+ if re.match("^\w*$", self.get_config('password')):
multipart = True
data = (pycurl.FORM_FILE, captcha)
else:
@@ -159,7 +159,7 @@ class DeathByCaptcha(Hook):
raise DeathByCaptchaException('timed-out')
result = res['text']
- self.logDebug("Result %s : %s" % (ticket, result))
+ self.log_debug("Result %s : %s" % (ticket, result))
return ticket, result
@@ -171,21 +171,21 @@ class DeathByCaptcha(Hook):
if not task.isTextual():
return False
- if not self.getConfig('username') or not self.getConfig('password'):
+ if not self.get_config('username') or not self.get_config('password'):
return False
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return False
try:
- self.getStatus()
- self.getCredits()
+ self.get_status()
+ self.get_credits()
except DeathByCaptchaException, e:
- self.logError(e.getDesc())
+ self.log_error(e.getDesc())
return False
balance, rate = self.info['balance'], self.info['rate']
- self.logInfo(_("Account balance"),
+ self.log_info(_("Account balance"),
_("US$%.3f (%d captchas left at %.2f cents each)") % (balance / 100,
balance // rate, rate))
@@ -193,7 +193,7 @@ class DeathByCaptcha(Hook):
task.handler.append(self)
task.data['service'] = self.__name__
task.setWaiting(180)
- self._processCaptcha(task)
+ self._process_captcha(task)
def captcha_invalid(self, task):
@@ -202,20 +202,20 @@ class DeathByCaptcha(Hook):
res = self.api_response("captcha/%d/report" % task.data['ticket'], True)
except DeathByCaptchaException, e:
- self.logError(e.getDesc())
+ self.log_error(e.getDesc())
except Exception, e:
- self.logError(e)
+ self.log_error(e)
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
c = task.captchaFile
try:
ticket, result = self.submit(c)
except DeathByCaptchaException, e:
task.error = e.getCode()
- self.logError(e.getDesc())
+ self.log_error(e.getDesc())
return
task.data['ticket'] = ticket
diff --git a/module/plugins/hooks/DebridItaliaComHook.py b/module/plugins/hooks/DebridItaliaComHook.py
index b7cf78a5d..9f7499783 100644
--- a/module/plugins/hooks/DebridItaliaComHook.py
+++ b/module/plugins/hooks/DebridItaliaComHook.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook
class DebridItaliaComHook(MultiHook):
__name__ = "DebridItaliaComHook"
__type__ = "hook"
- __version__ = "0.12"
+ __version__ = "0.13"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -21,5 +21,5 @@ class DebridItaliaComHook(MultiHook):
("Walter Purcaro", "vuolter@gmail.com" )]
- def getHosters(self):
+ def get_hosters(self):
return self.load("http://debriditalia.com/api.php", get={'hosts': ""}).replace('"', '').split(',')
diff --git a/module/plugins/hooks/DeleteFinished.py b/module/plugins/hooks/DeleteFinished.py
index a65e61547..ec708eb10 100644
--- a/module/plugins/hooks/DeleteFinished.py
+++ b/module/plugins/hooks/DeleteFinished.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Hook import Hook
class DeleteFinished(Hook):
__name__ = "DeleteFinished"
__type__ = "hook"
- __version__ = "1.13"
+ __version__ = "1.14"
__config__ = [("interval" , "int" , "Check interval in hours" , 72 ),
("deloffline", "bool", "Delete package with offline links", False)]
@@ -23,25 +23,25 @@ class DeleteFinished(Hook):
## overwritten methods ##
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- #: self.event_list = ["pluginConfigChanged"]
+ # self.event_map = {'pluginConfigChanged': "plugin_config_changed"}
self.interval = self.MIN_CHECK_INTERVAL
def periodical(self):
if not self.info['sleep']:
- deloffline = self.getConfig('deloffline')
+ deloffline = self.get_config('deloffline')
mode = "0,1,4" if deloffline else "0,4"
msg = _('delete all finished packages in queue list (%s packages with offline links)')
- self.logInfo(msg % (_('including') if deloffline else _('excluding')))
- self.deleteFinished(mode)
+ self.log_info(msg % (_('including') if deloffline else _('excluding')))
+ self.delete_finished(mode)
self.info['sleep'] = True
- self.addEvent('package_finished', self.wakeup)
+ self.add_event('package_finished', self.wakeup)
- #: def pluginConfigChanged(self, plugin, name, value):
- #: if name == "interval" and value != self.interval:
- #: self.interval = value * 3600
- #: self.init_periodical()
+ # def plugin_config_changed(self, plugin, name, value):
+ # if name == "interval" and value != self.interval:
+ # self.interval = value * 3600
+ # self.init_periodical()
def deactivate(self):
@@ -50,15 +50,15 @@ class DeleteFinished(Hook):
def activate(self):
self.info['sleep'] = True
- #: interval = self.getConfig('interval')
- #: self.pluginConfigChanged(self.__name__, 'interval', interval)
- self.interval = max(self.MIN_CHECK_INTERVAL, self.getConfig('interval') * 60 * 60)
- self.addEvent('package_finished', self.wakeup)
+ #: interval = self.get_config('interval')
+ #: self.plugin_config_changed(self.__name__, 'interval', interval)
+ self.interval = max(self.MIN_CHECK_INTERVAL, self.get_config('interval') * 60 * 60)
+ self.add_event('package_finished', self.wakeup)
## own methods ##
@style.queue
- def deleteFinished(self, mode):
+ def delete_finished(self, mode):
self.c.execute('DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE package=packages.id AND status NOT IN (%s))' % mode)
self.c.execute('DELETE FROM links WHERE NOT EXISTS(SELECT 1 FROM packages WHERE id=links.package)')
@@ -69,13 +69,13 @@ class DeleteFinished(Hook):
## event managing ##
- def addEvent(self, event, func):
+ def add_event(self, event, func):
"""
Adds an event listener for event name
"""
if event in self.manager.events:
if func in self.manager.events[event]:
- self.logDebug("Function already registered", func)
+ self.log_debug("Function already registered", func)
else:
self.manager.events[event].append(func)
else:
diff --git a/module/plugins/hooks/DownloadScheduler.py b/module/plugins/hooks/DownloadScheduler.py
index aa0ccbbab..e4b09f049 100644
--- a/module/plugins/hooks/DownloadScheduler.py
+++ b/module/plugins/hooks/DownloadScheduler.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Hook import Hook
class DownloadScheduler(Hook):
__name__ = "DownloadScheduler"
__type__ = "hook"
- __version__ = "0.23"
+ __version__ = "0.24"
__config__ = [("timetable", "str" , "List time periods as hh:mm full or number(kB/s)" , "0:00 full, 7:00 250, 10:00 0, 17:00 150"),
("abort" , "bool", "Abort active downloads when start period with speed 0", False )]
@@ -29,41 +29,41 @@ class DownloadScheduler(Hook):
def activate(self):
- self.updateSchedule()
+ self.update_schedule()
- def updateSchedule(self, schedule=None):
+ def update_schedule(self, schedule=None):
if schedule is None:
- schedule = self.getConfig('timetable')
+ schedule = self.get_config('timetable')
schedule = re.findall("(\d{1,2}):(\d{2})[\s]*(-?\d+)",
schedule.lower().replace("full", "-1").replace("none", "0"))
if not schedule:
- self.logError(_("Invalid schedule"))
+ self.log_error(_("Invalid schedule"))
return
t0 = time.localtime()
now = (t0.tm_hour, t0.tm_min, t0.tm_sec, "X")
schedule = sorted([(int(x[0]), int(x[1]), 0, int(x[2])) for x in schedule] + [now])
- self.logDebug("Schedule", schedule)
+ self.log_debug("Schedule", schedule)
for i, v in enumerate(schedule):
if v[3] == "X":
last, next = schedule[i - 1], schedule[(i + 1) % len(schedule)]
- self.logDebug("Now/Last/Next", now, last, next)
+ self.log_debug("Now/Last/Next", now, last, next)
- self.setDownloadSpeed(last[3])
+ self.set_download_speed(last[3])
next_time = (((24 + next[0] - now[0]) * 60 + next[1] - now[1]) * 60 + next[2] - now[2]) % 86400
self.core.scheduler.removeJob(self.cb)
- self.cb = self.core.scheduler.addJob(next_time, self.updateSchedule, threaded=False)
+ self.cb = self.core.scheduler.addJob(next_time, self.update_schedule, threaded=False)
- def setDownloadSpeed(self, speed):
+ def set_download_speed(self, speed):
if speed == 0:
- abort = self.getConfig('abort')
- self.logInfo(_("Stopping download server. (Running downloads will %sbe aborted.)") % '' if abort else _('not '))
+ abort = self.get_config('abort')
+ self.log_info(_("Stopping download server. (Running downloads will %sbe aborted.)") % '' if abort else _('not '))
self.core.api.pauseServer()
if abort:
self.core.api.stopAllDownloads()
@@ -71,10 +71,10 @@ class DownloadScheduler(Hook):
self.core.api.unpauseServer()
if speed > 0:
- self.logInfo(_("Setting download speed to %d kB/s") % speed)
+ self.log_info(_("Setting download speed to %d kB/s") % speed)
self.core.api.setConfigValue("download", "limit_speed", 1)
self.core.api.setConfigValue("download", "max_speed", speed)
else:
- self.logInfo(_("Setting download speed to FULL"))
+ self.log_info(_("Setting download speed to FULL"))
self.core.api.setConfigValue("download", "limit_speed", 0)
self.core.api.setConfigValue("download", "max_speed", -1)
diff --git a/module/plugins/hooks/EasybytezComHook.py b/module/plugins/hooks/EasybytezComHook.py
index 027081f25..e4374d37c 100644
--- a/module/plugins/hooks/EasybytezComHook.py
+++ b/module/plugins/hooks/EasybytezComHook.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook
class EasybytezComHook(MultiHook):
__name__ = "EasybytezComHook"
__type__ = "hook"
- __version__ = "0.07"
+ __version__ = "0.08"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -20,7 +20,7 @@ class EasybytezComHook(MultiHook):
__authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- def getHosters(self):
+ def get_hosters(self):
user, data = self.account.selectAccount()
req = self.account.getAccountRequest(user)
diff --git a/module/plugins/hooks/ExpertDecoders.py b/module/plugins/hooks/ExpertDecoders.py
index 63cee2379..6ec1f8bf1 100644
--- a/module/plugins/hooks/ExpertDecoders.py
+++ b/module/plugins/hooks/ExpertDecoders.py
@@ -15,7 +15,7 @@ from module.plugins.internal.Hook import Hook, threaded
class ExpertDecoders(Hook):
__name__ = "ExpertDecoders"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("passkey" , "password", "Access key" , "" ),
("check_client", "bool" , "Don't use if client is connected", True)]
@@ -35,20 +35,20 @@ class ExpertDecoders(Hook):
self.info = {} #@TODO: Remove in 0.4.10
- def getCredits(self):
- res = self.load(self.API_URL, post={"key": self.getConfig('passkey'), "action": "balance"})
+ def get_credits(self):
+ res = self.load(self.API_URL, post={"key": self.get_config('passkey'), "action": "balance"})
if res.isdigit():
- self.logInfo(_("%s credits left") % res)
+ self.log_info(_("%s credits left") % res)
self.info['credits'] = credits = int(res)
return credits
else:
- self.logError(res)
+ self.log_error(res)
return 0
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
task.data['ticket'] = ticket = uuid.uuid4()
result = None
@@ -56,20 +56,20 @@ class ExpertDecoders(Hook):
data = f.read()
req = getRequest()
- #raise timeout threshold
+ # raise timeout threshold
req.c.setopt(pycurl.LOW_SPEED_TIME, 80)
try:
result = self.load(self.API_URL,
post={'action' : "upload",
- 'key' : self.getConfig('passkey'),
+ 'key' : self.get_config('passkey'),
'file' : b64encode(data),
'gen_task_id': ticket},
req=req)
finally:
req.close()
- self.logDebug("Result %s : %s" % (ticket, result))
+ self.log_debug("Result %s : %s" % (ticket, result))
task.setResult(result)
@@ -77,19 +77,19 @@ class ExpertDecoders(Hook):
if not task.isTextual():
return False
- if not self.getConfig('passkey'):
+ if not self.get_config('passkey'):
return False
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return False
- if self.getCredits() > 0:
+ if self.get_credits() > 0:
task.handler.append(self)
task.setWaiting(100)
- self._processCaptcha(task)
+ self._process_captcha(task)
else:
- self.logInfo(_("Your ExpertDecoders Account has not enough credits"))
+ self.log_info(_("Your ExpertDecoders Account has not enough credits"))
def captcha_invalid(self, task):
@@ -97,8 +97,8 @@ class ExpertDecoders(Hook):
try:
res = self.load(self.API_URL,
- post={'action': "refund", 'key': self.getConfig('passkey'), 'gen_task_id': task.data['ticket']})
- self.logInfo(_("Request refund"), res)
+ post={'action': "refund", 'key': self.get_config('passkey'), 'gen_task_id': task.data['ticket']})
+ self.log_info(_("Request refund"), res)
except BadHeader, e:
- self.logError(_("Could not send refund request"), e)
+ self.log_error(_("Could not send refund request"), e)
diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py
index 29b43929e..6bf3cf347 100644
--- a/module/plugins/hooks/ExternalScripts.py
+++ b/module/plugins/hooks/ExternalScripts.py
@@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join
class ExternalScripts(Hook):
__name__ = "ExternalScripts"
__type__ = "hook"
- __version__ = "0.42"
+ __version__ = "0.43"
__config__ = [("activated", "bool", "Activated" , True ),
("waitend" , "bool", "Wait script ending", False)]
@@ -32,9 +32,10 @@ class ExternalScripts(Hook):
self.event_list = ["archive_extract_failed", "archive_extracted" ,
"package_extract_failed", "package_extracted" ,
- "all_archives_extracted", "all_archives_processed",
- "allDownloadsFinished" , "allDownloadsProcessed" ,
- "packageDeleted"]
+ "all_archives_extracted", "all_archives_processed"]
+ self.event_map = {'allDownloadsFinished' : "all_downloads_finished" ,
+ 'allDownloadsProcessed': "all_downloads_processed",
+ 'packageDeleted' : "package_deleted" }
folders = ["pyload_start", "pyload_restart", "pyload_stop",
"before_reconnect", "after_reconnect",
@@ -47,22 +48,22 @@ class ExternalScripts(Hook):
for folder in folders:
self.scripts[folder] = []
for dir in (pypath, ''):
- self.initPluginType(folder, os.path.join(dir, 'scripts', folder))
+ self.init_plugin_type(folder, os.path.join(dir, 'scripts', folder))
for script_type, names in self.scripts.iteritems():
if names:
- self.logInfo(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names)))
+ self.log_info(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names)))
self.pyload_start()
- def initPluginType(self, name, dir):
+ def init_plugin_type(self, name, dir):
if not os.path.isdir(dir):
try:
os.makedirs(dir)
except OSError, e:
- self.logDebug(e)
+ self.log_debug(e)
return
for filename in os.listdir(dir):
@@ -75,54 +76,54 @@ class ExternalScripts(Hook):
continue
if not os.access(file, os.X_OK):
- self.logWarning(_("Script not executable:") + " %s/%s" % (name, filename))
+ self.log_warning(_("Script not executable:") + " %s/%s" % (name, filename))
self.scripts[name].append(file)
- def callScript(self, script, *args):
+ def call_script(self, script, *args):
try:
cmd_args = (fs_encode(x) if isinstande(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10
- self.logDebug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args))
+ self.log_debug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args))
cmd = (script,) + cmd_args
p = subprocess.Popen(cmd, bufsize=-1) #@NOTE: output goes to pyload
- if self.getConfig('waitend'):
+ if self.get_config('waitend'):
p.communicate()
except Exception, e:
try:
- self.logError(_("Runtime error: %s") % os.path.abspath(script), e)
+ self.log_error(_("Runtime error: %s") % os.path.abspath(script), e)
except Exception:
- self.logError(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error"))
+ self.log_error(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error"))
def pyload_start(self):
for script in self.scripts['pyload_start']:
- self.callScript(script)
+ self.call_script(script)
def exit(self):
for script in self.scripts['pyload_restart' if self.core.do_restart else 'pyload_stop']:
- self.callScript(script)
+ self.call_script(script)
def before_reconnect(self, ip):
for script in self.scripts['before_reconnect']:
- self.callScript(script, ip)
+ self.call_script(script, ip)
self.info['oldip'] = ip
def after_reconnect(self, ip):
for script in self.scripts['after_reconnect']:
- self.callScript(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10
+ self.call_script(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10
def download_preparing(self, pyfile):
for script in self.scripts['download_preparing']:
- self.callScript(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url)
+ self.call_script(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url)
def download_failed(self, pyfile):
@@ -133,7 +134,7 @@ class ExternalScripts(Hook):
for script in self.scripts['download_failed']:
file = fs_join(download_folder, pyfile.name)
- self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url)
+ self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url)
def download_finished(self, pyfile):
@@ -144,17 +145,17 @@ class ExternalScripts(Hook):
for script in self.scripts['download_finished']:
file = fs_join(download_folder, pyfile.name)
- self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url)
+ self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url)
def archive_extract_failed(self, pyfile, archive):
for script in self.scripts['archive_extract_failed']:
- self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files)
+ self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files)
def archive_extracted(self, pyfile, archive):
for script in self.scripts['archive_extracted']:
- self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files)
+ self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files)
def package_finished(self, pypack):
@@ -164,10 +165,10 @@ class ExternalScripts(Hook):
download_folder = self.core.config.get("general", "download_folder")
for script in self.scripts['package_finished']:
- self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password)
+ self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password)
- def packageDeleted(self, pid):
+ def package_deleted(self, pid):
pack = self.core.api.getPackageInfo(pid)
if self.core.config.get("general", "folder_per_package"):
@@ -176,7 +177,7 @@ class ExternalScripts(Hook):
download_folder = self.core.config.get("general", "download_folder")
for script in self.scripts['package_deleted']:
- self.callScript(script, pack.id, pack.name, download_folder, pack.password)
+ self.call_script(script, pack.id, pack.name, download_folder, pack.password)
def package_extract_failed(self, pypack):
@@ -186,7 +187,7 @@ class ExternalScripts(Hook):
download_folder = self.core.config.get("general", "download_folder")
for script in self.scripts['package_extract_failed']:
- self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password)
+ self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password)
def package_extracted(self, pypack):
@@ -196,24 +197,24 @@ class ExternalScripts(Hook):
download_folder = self.core.config.get("general", "download_folder")
for script in self.scripts['package_extracted']:
- self.callScript(script, pypack.id, pypack.name, download_folder)
+ self.call_script(script, pypack.id, pypack.name, download_folder)
- def allDownloadsFinished(self):
+ def all_downloads_finished(self):
for script in self.scripts['all_downloads_finished']:
- self.callScript(script)
+ self.call_script(script)
- def allDownloadsProcessed(self):
+ def all_downloads_processed(self):
for script in self.scripts['all_downloads_processed']:
- self.callScript(script)
+ self.call_script(script)
def all_archives_extracted(self):
for script in self.scripts['all_archives_extracted']:
- self.callScript(script)
+ self.call_script(script)
def all_archives_processed(self):
for script in self.scripts['all_archives_processed']:
- self.callScript(script)
+ self.call_script(script)
diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py
index 925976bc6..73782ed95 100644
--- a/module/plugins/hooks/ExtractArchive.py
+++ b/module/plugins/hooks/ExtractArchive.py
@@ -70,7 +70,7 @@ class ArchiveQueue(object):
def get(self):
try:
- return [int(pid) for pid in self.plugin.getStorage("ExtractArchive:%s" % self.storage, "").decode('base64').split()]
+ return [int(pid) for pid in self.plugin.retrieve("ExtractArchive:%s" % self.storage, "").decode('base64').split()]
except Exception:
return []
@@ -80,11 +80,11 @@ class ArchiveQueue(object):
item = str(value)[1:-1].replace(' ', '').replace(',', ' ')
else:
item = str(value).strip()
- return self.plugin.setStorage("ExtractArchive:%s" % self.storage, item.encode('base64')[:-1])
+ return self.plugin.store("ExtractArchive:%s" % self.storage, item.encode('base64')[:-1])
def delete(self):
- return self.plugin.delStorage("ExtractArchive:%s" % self.storage)
+ return self.plugin.delete("ExtractArchive:%s" % self.storage)
def add(self, item):
@@ -112,7 +112,7 @@ class ArchiveQueue(object):
class ExtractArchive(Hook):
__name__ = "ExtractArchive"
__type__ = "hook"
- __version__ = "1.45"
+ __version__ = "1.46"
__config__ = [("activated" , "bool" , "Activated" , True ),
("fullpath" , "bool" , "Extract with full paths" , True ),
@@ -143,14 +143,15 @@ class ExtractArchive(Hook):
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- self.event_list = ["allDownloadsProcessed","packageDeleted"]
+ self.event_map = {'allDownloadsProcessed': "all_downloads_processed",
+ 'packageDeleted' : "package_deleted" }
self.queue = ArchiveQueue(self, "Queue")
self.failed = ArchiveQueue(self, "Failed")
self.interval = 60
self.extracting = False
- self.lastPackage = False
+ self.last_package = False
self.extractors = []
self.passwords = []
self.repair = False
@@ -164,30 +165,30 @@ class ExtractArchive(Hook):
if klass.isUsable():
self.extractors.append(klass)
if klass.REPAIR:
- self.repair = self.getConfig('repair')
+ self.repair = self.get_config('repair')
except OSError, e:
if e.errno == 2:
- self.logWarning(_("No %s installed") % p)
+ self.log_warning(_("No %s installed") % p)
else:
- self.logWarning(_("Could not activate: %s") % p, e)
+ self.log_warning(_("Could not activate: %s") % p, e)
if self.core.debug:
traceback.print_exc()
except Exception, e:
- self.logWarning(_("Could not activate: %s") % p, e)
+ self.log_warning(_("Could not activate: %s") % p, e)
if self.core.debug:
traceback.print_exc()
if self.extractors:
- self.logDebug(*["Found %s %s" % (Extractor.__name__, Extractor.VERSION) for Extractor in self.extractors])
- self.extractQueued() #: Resume unfinished extractions
+ self.log_debug(*["Found %s %s" % (Extractor.__name__, Extractor.VERSION) for Extractor in self.extractors])
+ self.extract_queued() #: Resume unfinished extractions
else:
- self.logInfo(_("No Extract plugins activated"))
+ self.log_info(_("No Extract plugins activated"))
@threaded
- def extractQueued(self, thread):
+ def extract_queued(self, thread):
if self.extracting: #@NOTE: doing the check here for safty (called by coreReady)
return
@@ -195,8 +196,8 @@ class ExtractArchive(Hook):
packages = self.queue.get()
while packages:
- if self.lastPackage: #: called from allDownloadsProcessed
- self.lastPackage = False
+ if self.last_package: #: called from allDownloadsProcessed
+ self.last_package = False
if self.extract(packages, thread): #@NOTE: check only if all gone fine, no failed reporting for now
self.manager.dispatchEvent("all_archives_extracted")
self.manager.dispatchEvent("all_archives_processed")
@@ -210,30 +211,30 @@ class ExtractArchive(Hook):
@Expose
- def extractPackage(self, *ids):
+ def extract_package(self, *ids):
"""
Extract packages with given id
"""
for id in ids:
self.queue.add(id)
- if not self.getConfig('waitall') and not self.extracting:
- self.extractQueued()
+ if not self.get_config('waitall') and not self.extracting:
+ self.extract_queued()
- def packageDeleted(self, pid):
+ def package_deleted(self, pid):
self.queue.remove(pid)
def package_finished(self, pypack):
self.queue.add(pypack.id)
- if not self.getConfig('waitall') and not self.extracting:
- self.extractQueued()
+ if not self.get_config('waitall') and not self.extracting:
+ self.extract_queued()
- def allDownloadsProcessed(self):
- self.lastPackage = True
- if self.getConfig('waitall') and not self.extracting:
- self.extractQueued()
+ def all_downloads_processed(self):
+ self.last_package = True
+ if self.get_config('waitall') and not self.extracting:
+ self.extract_queued()
@Expose
@@ -247,23 +248,23 @@ class ExtractArchive(Hook):
toList = lambda string: string.replace(' ', '').replace(',', '|').replace(';', '|').split('|')
- destination = self.getConfig('destination')
- subfolder = self.getConfig('subfolder')
- fullpath = self.getConfig('fullpath')
- overwrite = self.getConfig('overwrite')
- renice = self.getConfig('renice')
- recursive = self.getConfig('recursive')
- delete = self.getConfig('delete')
- keepbroken = self.getConfig('keepbroken')
+ destination = self.get_config('destination')
+ subfolder = self.get_config('subfolder')
+ fullpath = self.get_config('fullpath')
+ overwrite = self.get_config('overwrite')
+ renice = self.get_config('renice')
+ recursive = self.get_config('recursive')
+ delete = self.get_config('delete')
+ keepbroken = self.get_config('keepbroken')
- extensions = [x.lstrip('.').lower() for x in toList(self.getConfig('extensions'))]
- excludefiles = toList(self.getConfig('excludefiles'))
+ extensions = [x.lstrip('.').lower() for x in toList(self.get_config('extensions'))]
+ excludefiles = toList(self.get_config('excludefiles'))
if extensions:
- self.logDebug("Use for extensions: %s" % "|.".join(extensions))
+ self.log_debug("Use for extensions: %s" % "|.".join(extensions))
#: reload from txt file
- self.reloadPasswords()
+ self.reload_passwords()
download_folder = self.core.config.get("general", "download_folder")
@@ -275,7 +276,7 @@ class ExtractArchive(Hook):
self.queue.remove(pid)
continue
- self.logInfo(_("Check package: %s") % pypack.name)
+ self.log_info(_("Check package: %s") % pypack.name)
#: determine output folder
out = fs_join(download_folder, pypack.folder, destination, "") #: force trailing slash
@@ -302,17 +303,17 @@ class ExtractArchive(Hook):
for Extractor in self.extractors:
targets = Extractor.getTargets(files_ids)
if targets:
- self.logDebug("Targets for %s: %s" % (Extractor.__name__, targets))
+ self.log_debug("Targets for %s: %s" % (Extractor.__name__, targets))
matched = True
for fname, fid, fout in targets:
name = os.path.basename(fname)
if not os.path.exists(fname):
- self.logDebug(name, "File not found")
+ self.log_debug(name, "File not found")
continue
- self.logInfo(name, _("Extract to: %s") % fout)
+ self.log_info(name, _("Extract to: %s") % fout)
try:
pyfile = self.core.files.getFile(fid)
archive = Extractor(self,
@@ -337,20 +338,20 @@ class ExtractArchive(Hook):
thread.finishFile(pyfile)
except Exception, e:
- self.logError(name, e)
+ self.log_error(name, e)
success = False
continue
#: remove processed file and related multiparts from list
files_ids = [(fname, fid, fout) for fname, fid, fout in files_ids \
if fname not in archive.getDeleteFiles()]
- self.logDebug("Extracted files: %s" % new_files)
- self.setPermissions(new_files)
+ self.log_debug("Extracted files: %s" % new_files)
+ self.set_permissions(new_files)
for filename in new_files:
file = fs_encode(fs_join(os.path.dirname(archive.filename), filename))
if not os.path.exists(file):
- self.logDebug("New file %s does not exists" % filename)
+ self.log_debug("New file %s does not exists" % filename)
continue
if recursive and os.path.isfile(file):
@@ -371,7 +372,7 @@ class ExtractArchive(Hook):
self.failed.add(pid)
else:
- self.logInfo(_("No files found to extract"))
+ self.log_info(_("No files found to extract"))
if not matched or not success and subfolder:
try:
@@ -392,44 +393,44 @@ class ExtractArchive(Hook):
encrypted = False
try:
- self.logDebug("Password: %s" % (password or "None provided"))
- passwords = uniqify([password] + self.getPasswords(False)) if self.getConfig('usepasswordfile') else [password]
+ self.log_debug("Password: %s" % (password or "None provided"))
+ passwords = uniqify([password] + self.get_passwords(False)) if self.get_config('usepasswordfile') else [password]
for pw in passwords:
try:
- if self.getConfig('test') or self.repair:
+ if self.get_config('test') or self.repair:
pyfile.setCustomStatus(_("archive testing"))
if pw:
- self.logDebug("Testing with password: %s" % pw)
+ self.log_debug("Testing with password: %s" % pw)
pyfile.setProgress(0)
archive.verify(pw)
pyfile.setProgress(100)
else:
archive.check(pw)
- self.addPassword(pw)
+ self.add_password(pw)
break
except PasswordError:
if not encrypted:
- self.logInfo(name, _("Password protected"))
+ self.log_info(name, _("Password protected"))
encrypted = True
except CRCError, e:
- self.logDebug(name, e)
- self.logInfo(name, _("CRC Error"))
+ self.log_debug(name, e)
+ self.log_info(name, _("CRC Error"))
if self.repair:
- self.logWarning(name, _("Repairing..."))
+ self.log_warning(name, _("Repairing..."))
pyfile.setCustomStatus(_("archive repairing"))
pyfile.setProgress(0)
repaired = archive.repair()
pyfile.setProgress(100)
- if not repaired and not self.getConfig('keepbroken'):
+ if not repaired and not self.get_config('keepbroken'):
raise CRCError("Archive damaged")
- self.addPassword(pw)
+ self.add_password(pw)
break
raise CRCError("Archive damaged")
@@ -440,20 +441,20 @@ class ExtractArchive(Hook):
pyfile.setCustomStatus(_("extracting"))
pyfile.setProgress(0)
- if not encrypted or not self.getConfig('usepasswordfile'):
- self.logDebug("Extracting using password: %s" % (password or "None"))
+ if not encrypted or not self.get_config('usepasswordfile'):
+ self.log_debug("Extracting using password: %s" % (password or "None"))
archive.extract(password)
else:
- for pw in filter(None, uniqify([password] + self.getPasswords(False))):
+ for pw in filter(None, uniqify([password] + self.get_passwords(False))):
try:
- self.logDebug("Extracting using password: %s" % pw)
+ self.log_debug("Extracting using password: %s" % pw)
archive.extract(pw)
- self.addPassword(pw)
+ self.add_password(pw)
break
except PasswordError:
- self.logDebug("Password was wrong")
+ self.log_debug("Password was wrong")
else:
raise PasswordError
@@ -461,12 +462,12 @@ class ExtractArchive(Hook):
pyfile.setStatus("processing")
delfiles = archive.getDeleteFiles()
- self.logDebug("Would delete: " + ", ".join(delfiles))
+ self.log_debug("Would delete: " + ", ".join(delfiles))
- if self.getConfig('delete'):
- self.logInfo(_("Deleting %s files") % len(delfiles))
+ if self.get_config('delete'):
+ self.log_info(_("Deleting %s files") % len(delfiles))
- deltotrash = self.getConfig('deltotrash')
+ deltotrash = self.get_config('deltotrash')
for f in delfiles:
file = fs_encode(f)
if not os.path.exists(file):
@@ -480,30 +481,30 @@ class ExtractArchive(Hook):
send2trash.send2trash(file)
except NameError:
- self.logWarning(_("Unable to move %s to trash: Send2Trash lib not found") % os.path.basename(f))
+ self.log_warning(_("Unable to move %s to trash: Send2Trash lib not found") % os.path.basename(f))
except Exception, e:
- self.logWarning(_("Unable to move %s to trash: %s") % (os.path.basename(f), e.message))
+ self.log_warning(_("Unable to move %s to trash: %s") % (os.path.basename(f), e.message))
else:
- self.logDebug("Successfully moved %s to trash" % os.path.basename(f))
+ self.log_debug("Successfully moved %s to trash" % os.path.basename(f))
- self.logInfo(name, _("Extracting finished"))
+ self.log_info(name, _("Extracting finished"))
extracted_files = archive.files or archive.list()
return extracted_files
except PasswordError:
- self.logError(name, _("Wrong password" if password else "No password found"))
+ self.log_error(name, _("Wrong password" if password else "No password found"))
except CRCError, e:
- self.logError(name, _("CRC mismatch"), e)
+ self.log_error(name, _("CRC mismatch"), e)
except ArchiveError, e:
- self.logError(name, _("Archive error"), e)
+ self.log_error(name, _("Archive error"), e)
except Exception, e:
- self.logError(name, _("Unknown error"), e)
+ self.log_error(name, _("Unknown error"), e)
if self.core.debug:
traceback.print_exc()
@@ -513,50 +514,50 @@ class ExtractArchive(Hook):
@Expose
- def getPasswords(self, reload=True):
+ def get_passwords(self, reload=True):
"""
List of saved passwords
"""
if reload:
- self.reloadPasswords()
+ self.reload_passwords()
return self.passwords
- def reloadPasswords(self):
+ def reload_passwords(self):
try:
passwords = []
- file = fs_encode(self.getConfig('passwordfile'))
+ file = fs_encode(self.get_config('passwordfile'))
with open(file) as f:
for pw in f.read().splitlines():
passwords.append(pw)
except IOError, e:
- self.logError(e)
+ self.log_error(e)
else:
self.passwords = passwords
@Expose
- def addPassword(self, password):
+ def add_password(self, password):
"""
Adds a password to saved list
"""
try:
self.passwords = uniqify([password] + self.passwords)
- file = fs_encode(self.getConfig('passwordfile'))
+ file = fs_encode(self.get_config('passwordfile'))
with open(file, "wb") as f:
for pw in self.passwords:
f.write(pw + '\n')
except IOError, e:
- self.logError(e)
+ self.log_error(e)
- def setPermissions(self, files):
+ def set_permissions(self, files):
for f in files:
if not os.path.exists(f):
continue
@@ -575,4 +576,4 @@ class ExtractArchive(Hook):
os.chown(f, uid, gid)
except Exception, e:
- self.logWarning(_("Setting User and Group failed"), e)
+ self.log_warning(_("Setting User and Group failed"), e)
diff --git a/module/plugins/hooks/FastixRuHook.py b/module/plugins/hooks/FastixRuHook.py
index 0cd060377..c14d6c380 100644
--- a/module/plugins/hooks/FastixRuHook.py
+++ b/module/plugins/hooks/FastixRuHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class FastixRuHook(MultiHook):
__name__ = "FastixRuHook"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class FastixRuHook(MultiHook):
__authors__ = [("Massimo Rosamilia", "max@spiritix.eu")]
- def getHosters(self):
+ def get_hosters(self):
html = self.load("http://fastix.ru/api_v2",
get={'apikey': "5182964c3f8f9a7f0b00000a_kelmFB4n1IrnCDYuIFn2y",
'sub' : "allowed_sources"})
diff --git a/module/plugins/hooks/FreeWayMeHook.py b/module/plugins/hooks/FreeWayMeHook.py
index 0d5087cc0..093dd82d3 100644
--- a/module/plugins/hooks/FreeWayMeHook.py
+++ b/module/plugins/hooks/FreeWayMeHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class FreeWayMeHook(MultiHook):
__name__ = "FreeWayMeHook"
__type__ = "hook"
- __version__ = "0.16"
+ __version__ = "0.17"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,7 +18,7 @@ class FreeWayMeHook(MultiHook):
__authors__ = [("Nicolas Giese", "james@free-way.me")]
- def getHosters(self):
+ def get_hosters(self):
user, data = self.account.selectAccount()
hostis = self.load("http://www.free-way.bz/ajax/jd.php", get={"id": 3, "user": user, "pass": data['password']}).replace("\"", "") #@TODO: Revert to `https` in 0.4.10
return [x.strip() for x in hostis.split(",") if x.strip()]
diff --git a/module/plugins/hooks/HighWayMeHook.py b/module/plugins/hooks/HighWayMeHook.py
index 824e5c475..8e400a628 100644
--- a/module/plugins/hooks/HighWayMeHook.py
+++ b/module/plugins/hooks/HighWayMeHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class HighWayMeHook(MultiHook):
__name__ = "HighWayMeHook"
__type__ = "hook"
- __version__ = "0.03"
+ __version__ = "0.04"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class HighWayMeHook(MultiHook):
__authors__ = [("EvolutionClip", "evolutionclip@live.de")]
- def getHosters(self):
+ def get_hosters(self):
json_data = json_loads(self.load("https://high-way.me/api.php",
get={'hoster': 1}))
return [element['name'] for element in json_data['hoster']]
diff --git a/module/plugins/hooks/HotFolder.py b/module/plugins/hooks/HotFolder.py
index 8c922f47a..8e1d1c54f 100644
--- a/module/plugins/hooks/HotFolder.py
+++ b/module/plugins/hooks/HotFolder.py
@@ -14,7 +14,7 @@ from module.utils import fs_encode, save_join as fs_join
class HotFolder(Hook):
__name__ = "HotFolder"
__type__ = "hook"
- __version__ = "0.15"
+ __version__ = "0.16"
__config__ = [("folder" , "str" , "Folder to observe" , "container"),
("watch_file", "bool", "Observe link file" , False ),
@@ -32,14 +32,14 @@ class HotFolder(Hook):
def periodical(self):
- folder = fs_encode(self.getConfig('folder'))
- file = fs_encode(self.getConfig('file'))
+ folder = fs_encode(self.get_config('folder'))
+ file = fs_encode(self.get_config('file'))
try:
if not os.path.isdir(os.path.join(folder, "finished")):
os.makedirs(os.path.join(folder, "finished"))
- if self.getConfig('watch_file'):
+ if self.get_config('watch_file'):
with open(file, "a+") as f:
f.seek(0)
content = f.read().strip()
@@ -61,11 +61,11 @@ class HotFolder(Hook):
if not os.path.isfile(path) or f.endswith("~") or f.startswith("#") or f.startswith("."):
continue
- newpath = os.path.join(folder, "finished", f if self.getConfig('keep') else "tmp_" + f)
+ newpath = os.path.join(folder, "finished", f if self.get_config('keep') else "tmp_" + f)
move(path, newpath)
- self.logInfo(_("Added %s from HotFolder") % f)
+ self.log_info(_("Added %s from HotFolder") % f)
self.core.api.addPackage(f, [newpath], 1)
except (IOError, OSError), e:
- self.logError(e)
+ self.log_error(e)
diff --git a/module/plugins/hooks/IRCInterface.py b/module/plugins/hooks/IRCInterface.py
index 7cdd7624f..32597aa42 100644
--- a/module/plugins/hooks/IRCInterface.py
+++ b/module/plugins/hooks/IRCInterface.py
@@ -18,7 +18,7 @@ from module.utils import formatSize
class IRCInterface(Thread, Hook):
__name__ = "IRCInterface"
__type__ = "hook"
- __version__ = "0.14"
+ __version__ = "0.15"
__config__ = [("host" , "str" , "IRC-Server Address" , "Enter your server here!"),
("port" , "int" , "IRC-Server Port" , 6667 ),
@@ -42,7 +42,7 @@ class IRCInterface(Thread, Hook):
def __init__(self, core, manager):
Thread.__init__(self)
Hook.__init__(self, core, manager)
- self.setDaemon(True)
+ self.set_daemon(True)
def activate(self):
@@ -55,7 +55,7 @@ class IRCInterface(Thread, Hook):
def package_finished(self, pypack):
try:
- if self.getConfig('info_pack'):
+ if self.get_config('info_pack'):
self.response(_("Package finished: %s") % pypack.name)
except Exception:
pass
@@ -63,7 +63,7 @@ class IRCInterface(Thread, Hook):
def download_finished(self, pyfile):
try:
- if self.getConfig('info_file'):
+ if self.get_config('info_file'):
self.response(
_("Download finished: %(name)s @ %(plugin)s ") % {"name": pyfile.name, "plugin": pyfile.pluginname})
except Exception:
@@ -71,7 +71,7 @@ class IRCInterface(Thread, Hook):
def captcha_task(self, task):
- if self.getConfig('captcha') and task.isTextual():
+ if self.get_config('captcha') and task.isTextual():
task.handler.append(self)
task.setWaiting(60)
@@ -86,20 +86,20 @@ class IRCInterface(Thread, Hook):
def run(self):
#: connect to IRC etc.
self.sock = socket.socket()
- host = self.getConfig('host')
- self.sock.connect((host, self.getConfig('port')))
+ host = self.get_config('host')
+ self.sock.connect((host, self.get_config('port')))
- if self.getConfig('ssl'):
+ if self.get_config('ssl'):
self.sock = ssl.wrap_socket(self.sock, cert_reqs=ssl.CERT_NONE) #@TODO: support certificate
- nick = self.getConfig('nick')
+ nick = self.get_config('nick')
self.sock.send("NICK %s\r\n" % nick)
self.sock.send("USER %s %s bla :%s\r\n" % (nick, host, nick))
- for t in self.getConfig('owner').split():
+ for t in self.get_config('owner').split():
if t.strip().startswith("#"):
self.sock.send("JOIN %s\r\n" % t.strip())
- self.logInfo(_("Connected to"), host)
- self.logInfo(_("Switching to listening mode!"))
+ self.log_info(_("Connected to"), host)
+ self.log_info(_("Switching to listening mode!"))
try:
self.main_loop()
@@ -149,10 +149,10 @@ class IRCInterface(Thread, Hook):
def handle_events(self, msg):
- if not msg['origin'].split("!", 1)[0] in self.getConfig('owner').split():
+ if not msg['origin'].split("!", 1)[0] in self.get_config('owner').split():
return
- if msg['target'].split("!", 1)[0] != self.getConfig('nick'):
+ if msg['target'].split("!", 1)[0] != self.get_config('nick'):
return
if msg['action'] != "PRIVMSG":
@@ -160,15 +160,15 @@ class IRCInterface(Thread, Hook):
#: HANDLE CTCP ANTI FLOOD/BOT PROTECTION
if msg['text'] == "\x01VERSION\x01":
- self.logDebug("Sending CTCP VERSION")
+ self.log_debug("Sending CTCP VERSION")
self.sock.send("NOTICE %s :%s\r\n" % (msg['origin'], "pyLoad! IRC Interface"))
return
elif msg['text'] == "\x01TIME\x01":
- self.logDebug("Sending CTCP TIME")
+ self.log_debug("Sending CTCP TIME")
self.sock.send("NOTICE %s :%d\r\n" % (msg['origin'], time.time()))
return
elif msg['text'] == "\x01LAG\x01":
- self.logDebug("Received CTCP LAG") #: don't know how to answer
+ self.log_debug("Received CTCP LAG") #: don't know how to answer
return
trigger = "pass"
@@ -188,12 +188,12 @@ class IRCInterface(Thread, Hook):
for line in res:
self.response(line, msg['origin'])
except Exception, e:
- self.logError(e)
+ self.log_error(e)
def response(self, msg, origin=""):
if origin == "":
- for t in self.getConfig('owner').split():
+ for t in self.get_config('owner').split():
self.sock.send("PRIVMSG %s :%s\r\n" % (t.strip(), msg))
else:
self.sock.send("PRIVMSG %s :%s\r\n" % (origin.split("!", 1)[0], msg))
@@ -339,7 +339,7 @@ class IRCInterface(Thread, Hook):
if not pack:
return ["ERROR: Package doesn't exists."]
- #TODO add links
+ # TODO add links
return ["INFO: Added %d links to Package %s [#%d]" % (len(links), pack['name'], id)]
diff --git a/module/plugins/hooks/ImageTyperz.py b/module/plugins/hooks/ImageTyperz.py
index 90849a20c..c70518c17 100644
--- a/module/plugins/hooks/ImageTyperz.py
+++ b/module/plugins/hooks/ImageTyperz.py
@@ -17,7 +17,7 @@ class ImageTyperzException(Exception):
self.err = err
- def getCode(self):
+ def get_code(self):
return self.err
@@ -32,7 +32,7 @@ class ImageTyperzException(Exception):
class ImageTyperz(Hook):
__name__ = "ImageTyperz"
__type__ = "hook"
- __version__ = "0.07"
+ __version__ = "0.08"
__config__ = [("username" , "str" , "Username" , "" ),
("password" , "password", "Password" , "" ),
@@ -55,11 +55,11 @@ class ImageTyperz(Hook):
self.info = {} #@TODO: Remove in 0.4.10
- def getCredits(self):
+ def get_credits(self):
res = self.load(self.GETCREDITS_URL,
post={'action': "REQUESTBALANCE",
- 'username': self.getConfig('username'),
- 'password': self.getConfig('password')})
+ 'username': self.get_config('username'),
+ 'password': self.get_config('password')})
if res.startswith('ERROR'):
raise ImageTyperzException(res)
@@ -69,18 +69,18 @@ class ImageTyperz(Hook):
except Exception:
raise ImageTyperzException("Invalid response")
- self.logInfo(_("Account balance: $%s left") % res)
+ self.log_info(_("Account balance: $%s left") % res)
return balance
def submit(self, captcha, captchaType="file", match=None):
req = getRequest()
- #raise timeout threshold
+ # raise timeout threshold
req.c.setopt(pycurl.LOW_SPEED_TIME, 80)
try:
#@NOTE: Workaround multipart-post bug in HTTPRequest.py
- if re.match("^\w*$", self.getConfig('password')):
+ if re.match("^\w*$", self.get_config('password')):
multipart = True
data = (pycurl.FORM_FILE, captcha)
else:
@@ -91,8 +91,8 @@ class ImageTyperz(Hook):
res = self.load(self.SUBMIT_URL,
post={'action': "UPLOADCAPTCHA",
- 'username': self.getConfig('username'),
- 'password': self.getConfig('password'), "file": data},
+ 'username': self.get_config('username'),
+ 'password': self.get_config('password'), "file": data},
multipart=multipart,
req=req)
finally:
@@ -117,38 +117,38 @@ class ImageTyperz(Hook):
if not task.isTextual():
return False
- if not self.getConfig('username') or not self.getConfig('password'):
+ if not self.get_config('username') or not self.get_config('password'):
return False
- if self.core.isClientConnected() and self.getConfig('check_client'):
+ if self.core.isClientConnected() and self.get_config('check_client'):
return False
- if self.getCredits() > 0:
+ if self.get_credits() > 0:
task.handler.append(self)
task.data['service'] = self.__name__
task.setWaiting(100)
- self._processCaptcha(task)
+ self._process_captcha(task)
else:
- self.logInfo(_("Your %s account has not enough credits") % self.__name__)
+ self.log_info(_("Your %s account has not enough credits") % self.__name__)
def captcha_invalid(self, task):
if task.data['service'] == self.__name__ and "ticket" in task.data:
res = self.load(self.RESPOND_URL,
post={'action': "SETBADIMAGE",
- 'username': self.getConfig('username'),
- 'password': self.getConfig('password'),
+ 'username': self.get_config('username'),
+ 'password': self.get_config('password'),
'imageid': task.data['ticket']})
if res == "SUCCESS":
- self.logInfo(_("Bad captcha solution received, requested refund"))
+ self.log_info(_("Bad captcha solution received, requested refund"))
else:
- self.logError(_("Bad captcha solution received, refund request failed"), res)
+ self.log_error(_("Bad captcha solution received, refund request failed"), res)
@threaded
- def _processCaptcha(self, task):
+ def _process_captcha(self, task):
c = task.captchaFile
try:
ticket, result = self.submit(c)
diff --git a/module/plugins/hooks/JustPremium.py b/module/plugins/hooks/JustPremium.py
index 19a552e49..706de4d81 100644
--- a/module/plugins/hooks/JustPremium.py
+++ b/module/plugins/hooks/JustPremium.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook
class JustPremium(Hook):
__name__ = "JustPremium"
__type__ = "hook"
- __version__ = "0.23"
+ __version__ = "0.24"
__config__ = [("excluded", "str", "Exclude hosters (comma separated)", ""),
("included", "str", "Include hosters (comma separated)", "")]
@@ -25,10 +25,10 @@ class JustPremium(Hook):
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- self.event_list = ["linksAdded"]
+ self.event_map = {'linksAdded': "links_added"}
- def linksAdded(self, links, pid):
+ def links_added(self, links, pid):
hosterdict = self.core.pluginManager.hosterPlugins
linkdict = self.core.api.checkURLs(links)
@@ -39,9 +39,9 @@ class JustPremium(Hook):
and hosterdict[hoster]['new_name'] in premiumplugins)
excluded = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'),
- self.getConfig('excluded').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
+ self.get_config('excluded').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
included = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'),
- self.getConfig('included').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
+ self.get_config('included').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
hosterlist = (premiumplugins | multihosters).union(excluded).difference(included)
@@ -50,7 +50,7 @@ class JustPremium(Hook):
return
for pluginname in set(linkdict.keys()) - hosterlist:
- self.logInfo(_("Remove links of plugin: %s") % pluginname)
+ self.log_info(_("Remove links of plugin: %s") % pluginname)
for link in linkdict[pluginname]:
- self.logDebug("Remove link: %s" % link)
+ self.log_debug("Remove link: %s" % link)
links.remove(link)
diff --git a/module/plugins/hooks/LinkdecrypterComHook.py b/module/plugins/hooks/LinkdecrypterComHook.py
index 76167524b..1fe7497b3 100644
--- a/module/plugins/hooks/LinkdecrypterComHook.py
+++ b/module/plugins/hooks/LinkdecrypterComHook.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook
class LinkdecrypterComHook(MultiHook):
__name__ = "LinkdecrypterComHook"
__type__ = "hook"
- __version__ = "1.06"
+ __version__ = "1.07"
__config__ = [("activated" , "bool" , "Activated" , True ),
("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
@@ -21,7 +21,7 @@ class LinkdecrypterComHook(MultiHook):
__authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- def getHosters(self):
+ def get_hosters(self):
list = re.search(r'>Supported\(\d+\)</b>: <i>(.[\w.\-, ]+)',
self.load("http://linkdecrypter.com/").replace("(g)", "")).group(1).split(', ')
try:
diff --git a/module/plugins/hooks/LinksnappyComHook.py b/module/plugins/hooks/LinksnappyComHook.py
index 4004a4fd6..9501ba4a2 100644
--- a/module/plugins/hooks/LinksnappyComHook.py
+++ b/module/plugins/hooks/LinksnappyComHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class LinksnappyComHook(MultiHook):
__name__ = "LinksnappyComHook"
__type__ = "hook"
- __version__ = "0.04"
+ __version__ = "0.05"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class LinksnappyComHook(MultiHook):
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def getHosters(self):
+ def get_hosters(self):
json_data = self.load("http://gen.linksnappy.com/lseAPI.php", get={'act': "FILEHOSTS"})
json_data = json_loads(json_data)
diff --git a/module/plugins/hooks/MegaDebridEuHook.py b/module/plugins/hooks/MegaDebridEuHook.py
index 5d45c2332..36aa807ae 100644
--- a/module/plugins/hooks/MegaDebridEuHook.py
+++ b/module/plugins/hooks/MegaDebridEuHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class MegaDebridEuHook(MultiHook):
__name__ = "MegaDebridEuHook"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,14 +19,14 @@ class MegaDebridEuHook(MultiHook):
__authors__ = [("D.Ducatel", "dducatel@je-geek.fr")]
- def getHosters(self):
+ def get_hosters(self):
reponse = self.load("http://www.mega-debrid.eu/api.php", get={'action': "getHosters"})
json_data = json_loads(reponse)
if json_data['response_code'] == "ok":
host_list = [element[0] for element in json_data['hosters']]
else:
- self.logError(_("Unable to retrieve hoster list"))
+ self.log_error(_("Unable to retrieve hoster list"))
host_list = list()
return host_list
diff --git a/module/plugins/hooks/MegaRapidoNetHook.py b/module/plugins/hooks/MegaRapidoNetHook.py
index e113b305e..278daa11d 100644
--- a/module/plugins/hooks/MegaRapidoNetHook.py
+++ b/module/plugins/hooks/MegaRapidoNetHook.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook
class MegaRapidoNetHook(MultiHook):
__name__ = "MegaRapidoNetHook"
__type__ = "hook"
- __version__ = "0.02"
+ __version__ = "0.03"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -20,7 +20,7 @@ class MegaRapidoNetHook(MultiHook):
__authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
- def getHosters(self):
+ def get_hosters(self):
hosters = {'1fichier' : [],#leave it there are so many possible addresses?
'1st-files' : ['1st-files.com'],
'2shared' : ['2shared.com'],
diff --git a/module/plugins/hooks/MergeFiles.py b/module/plugins/hooks/MergeFiles.py
index 64ab50400..9aa70aa71 100644
--- a/module/plugins/hooks/MergeFiles.py
+++ b/module/plugins/hooks/MergeFiles.py
@@ -13,7 +13,7 @@ from module.utils import save_join as fs_join
class MergeFiles(Hook):
__name__ = "MergeFiles"
__type__ = "hook"
- __version__ = "0.15"
+ __version__ = "0.16"
__config__ = [("activated", "bool", "Activated", True)]
@@ -49,11 +49,11 @@ class MergeFiles(Hook):
download_folder = fs_join(download_folder, pack.folder)
for name, file_list in files.iteritems():
- self.logInfo(_("Starting merging of"), name)
+ self.log_info(_("Starting merging of"), name)
with open(fs_join(download_folder, name), "wb") as final_file:
for splitted_file in file_list:
- self.logDebug("Merging part", splitted_file)
+ self.log_debug("Merging part", splitted_file)
pyfile = self.core.files.getFile(fid_dict[splitted_file])
@@ -71,7 +71,7 @@ class MergeFiles(Hook):
pyfile.setProgress((size_written * 100) / s_file_size)
else:
break
- self.logDebug("Finished merging part", splitted_file)
+ self.log_debug("Finished merging part", splitted_file)
except Exception, e:
traceback.print_exc()
@@ -81,4 +81,4 @@ class MergeFiles(Hook):
pyfile.setStatus("finished")
pyfile.release()
- self.logInfo(_("Finished merging of"), name)
+ self.log_info(_("Finished merging of"), name)
diff --git a/module/plugins/hooks/MultiHome.py b/module/plugins/hooks/MultiHome.py
index 790d5dab3..12a65c601 100644
--- a/module/plugins/hooks/MultiHome.py
+++ b/module/plugins/hooks/MultiHome.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook
class MultiHome(Hook):
__name__ = "MultiHome"
__type__ = "hook"
- __version__ = "0.13"
+ __version__ = "0.14"
__config__ = [("interfaces", "str", "Interfaces", "None")]
@@ -25,18 +25,18 @@ class MultiHome(Hook):
self.register = {}
self.interfaces = []
- self.parseInterfaces(self.getConfig('interfaces').split(";"))
+ self.parse_interfaces(self.get_config('interfaces').split(";"))
if not self.interfaces:
- self.parseInterfaces([self.core.config.get("download", "interface")])
- self.setConfig("interfaces", self.toConfig())
+ self.parse_interfaces([self.core.config.get("download", "interface")])
+ self.set_config("interfaces", self.to_config())
- def toConfig(self):
+ def to_config(self):
return ";".join(i.adress for i in self.interfaces)
- def parseInterfaces(self, interfaces):
+ def parse_interfaces(self, interfaces):
for interface in interfaces:
if not interface or str(interface).lower() == "none":
continue
@@ -48,18 +48,18 @@ class MultiHome(Hook):
oldGetRequest = requestFactory.getRequest
- def getRequest(pluginName, account=None):
- iface = self.bestInterface(pluginName, account)
+ def get_request(pluginName, account=None):
+ iface = self.best_interface(pluginName, account)
if iface:
iface.useFor(pluginName, account)
requestFactory.iface = lambda: iface.adress
- self.logDebug("Using address", iface.adress)
+ self.log_debug("Using address", iface.adress)
return oldGetRequest(pluginName, account)
requestFactory.getRequest = getRequest
- def bestInterface(self, pluginName, account):
+ def best_interface(self, pluginName, account):
best = None
for interface in self.interfaces:
if not best or interface.lastPluginAccess(pluginName, account) < best.lastPluginAccess(pluginName, account):
@@ -74,13 +74,13 @@ class Interface(object):
self.history = {}
- def lastPluginAccess(self, pluginName, account):
+ def last_plugin_access(self, pluginName, account):
if (pluginName, account) in self.history:
return self.history[(pluginName, account)]
return 0
- def useFor(self, pluginName, account):
+ def use_for(self, pluginName, account):
self.history[(pluginName, account)] = time.time()
diff --git a/module/plugins/hooks/MultihostersComHook.py b/module/plugins/hooks/MultihostersComHook.py
index 10b1c53ba..caa9d5bea 100644
--- a/module/plugins/hooks/MultihostersComHook.py
+++ b/module/plugins/hooks/MultihostersComHook.py
@@ -6,7 +6,7 @@ from module.plugins.hooks.ZeveraComHook import ZeveraComHook
class MultihostersComHook(ZeveraComHook):
__name__ = "MultihostersComHook"
__type__ = "hook"
- __version__ = "0.02"
+ __version__ = "0.03"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
diff --git a/module/plugins/hooks/MultishareCzHook.py b/module/plugins/hooks/MultishareCzHook.py
index 866fea405..8ddcf74d2 100644
--- a/module/plugins/hooks/MultishareCzHook.py
+++ b/module/plugins/hooks/MultishareCzHook.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook
class MultishareCzHook(MultiHook):
__name__ = "MultishareCzHook"
__type__ = "hook"
- __version__ = "0.07"
+ __version__ = "0.08"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -23,6 +23,6 @@ class MultishareCzHook(MultiHook):
HOSTER_PATTERN = r'<img class="logo-shareserveru"[^>]*?alt="(.+?)"></td>\s*<td class="stav">[^>]*?alt="OK"'
- def getHosters(self):
+ def get_hosters(self):
html = self.load("http://www.multishare.cz/monitoring/")
return re.findall(self.HOSTER_PATTERN, html)
diff --git a/module/plugins/hooks/MyfastfileComHook.py b/module/plugins/hooks/MyfastfileComHook.py
index 5ba44f89e..f1e5d669d 100644
--- a/module/plugins/hooks/MyfastfileComHook.py
+++ b/module/plugins/hooks/MyfastfileComHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class MyfastfileComHook(MultiHook):
__name__ = "MyfastfileComHook"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,9 +19,9 @@ class MyfastfileComHook(MultiHook):
__authors__ = [("stickell", "l.stickell@yahoo.it")]
- def getHosters(self):
+ def get_hosters(self):
json_data = self.load("http://myfastfile.com/api.php", get={'hosts': ""})
- self.logDebug("JSON data", json_data)
+ self.log_debug("JSON data", json_data)
json_data = json_loads(json_data)
return json_data['hosts']
diff --git a/module/plugins/hooks/NoPremiumPlHook.py b/module/plugins/hooks/NoPremiumPlHook.py
index 3c7cc8d9d..1b011e6f8 100644
--- a/module/plugins/hooks/NoPremiumPlHook.py
+++ b/module/plugins/hooks/NoPremiumPlHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class NoPremiumPlHook(MultiHook):
__name__ = "NoPremiumPlHook"
__type__ = "hook"
- __version__ = "0.03"
+ __version__ = "0.04"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,10 +19,10 @@ class NoPremiumPlHook(MultiHook):
__authors__ = [("goddie", "dev@nopremium.pl")]
- def getHosters(self):
+ def get_hosters(self):
hostings = json_loads(self.load("https://www.nopremium.pl/clipboard.php?json=3").strip())
hostings_domains = [domain for row in hostings for domain in row['domains'] if row['sdownload'] == "0"]
- self.logDebug(hostings_domains)
+ self.log_debug(hostings_domains)
return hostings_domains
diff --git a/module/plugins/hooks/OverLoadMeHook.py b/module/plugins/hooks/OverLoadMeHook.py
index 39401000d..611285818 100644
--- a/module/plugins/hooks/OverLoadMeHook.py
+++ b/module/plugins/hooks/OverLoadMeHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class OverLoadMeHook(MultiHook):
__name__ = "OverLoadMeHook"
__type__ = "hook"
- __version__ = "0.04"
+ __version__ = "0.05"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,7 +18,7 @@ class OverLoadMeHook(MultiHook):
__authors__ = [("marley", "marley@over-load.me")]
- def getHosters(self):
+ def get_hosters(self):
html = self.load("https://api.over-load.me/hoster.php",
get={'auth': "0001-cb1f24dadb3aa487bda5afd3b76298935329be7700cd7-5329be77-00cf-1ca0135f"}).replace("\"", "").strip()
return [x.strip() for x in html.split(",") if x.strip()]
diff --git a/module/plugins/hooks/PremiumToHook.py b/module/plugins/hooks/PremiumToHook.py
index 1c15bf11a..dd85cb903 100644
--- a/module/plugins/hooks/PremiumToHook.py
+++ b/module/plugins/hooks/PremiumToHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class PremiumToHook(MultiHook):
__name__ = "PremiumToHook"
__type__ = "hook"
- __version__ = "0.09"
+ __version__ = "0.10"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -20,7 +20,7 @@ class PremiumToHook(MultiHook):
("stickell", "l.stickell@yahoo.it")]
- def getHosters(self):
+ def get_hosters(self):
user, data = self.account.selectAccount()
html = self.load("http://premium.to/api/hosters.php",
get={'username': user, 'password': data['password']})
diff --git a/module/plugins/hooks/PremiumizeMeHook.py b/module/plugins/hooks/PremiumizeMeHook.py
index 1f38d374e..24d091454 100644
--- a/module/plugins/hooks/PremiumizeMeHook.py
+++ b/module/plugins/hooks/PremiumizeMeHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class PremiumizeMeHook(MultiHook):
__name__ = "PremiumizeMeHook"
__type__ = "hook"
- __version__ = "0.18"
+ __version__ = "0.19"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class PremiumizeMeHook(MultiHook):
__authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")]
- def getHosters(self):
+ def get_hosters(self):
#: Get account data
user, data = self.account.selectAccount()
diff --git a/module/plugins/hooks/PutdriveComHook.py b/module/plugins/hooks/PutdriveComHook.py
index 931e5f565..2c5310dbf 100644
--- a/module/plugins/hooks/PutdriveComHook.py
+++ b/module/plugins/hooks/PutdriveComHook.py
@@ -6,7 +6,7 @@ from module.plugins.hooks.ZeveraComHook import ZeveraComHook
class PutdriveComHook(ZeveraComHook):
__name__ = "PutdriveComHook"
__type__ = "hook"
- __version__ = "0.01"
+ __version__ = "0.02"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
diff --git a/module/plugins/hooks/RPNetBizHook.py b/module/plugins/hooks/RPNetBizHook.py
index a19ed7228..be472af26 100644
--- a/module/plugins/hooks/RPNetBizHook.py
+++ b/module/plugins/hooks/RPNetBizHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class RPNetBizHook(MultiHook):
__name__ = "RPNetBizHook"
__type__ = "hook"
- __version__ = "0.14"
+ __version__ = "0.15"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class RPNetBizHook(MultiHook):
__authors__ = [("Dman", "dmanugm@gmail.com")]
- def getHosters(self):
+ def get_hosters(self):
#: Get account data
user, data = self.account.selectAccount()
diff --git a/module/plugins/hooks/RapideoPlHook.py b/module/plugins/hooks/RapideoPlHook.py
index 861f9e10d..adbe55f12 100644
--- a/module/plugins/hooks/RapideoPlHook.py
+++ b/module/plugins/hooks/RapideoPlHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class RapideoPlHook(MultiHook):
__name__ = "RapideoPlHook"
__type__ = "hook"
- __version__ = "0.03"
+ __version__ = "0.04"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,10 +19,10 @@ class RapideoPlHook(MultiHook):
__authors__ = [("goddie", "dev@rapideo.pl")]
- def getHosters(self):
+ def get_hosters(self):
hostings = json_loads(self.load("https://www.rapideo.pl/clipboard.php?json=3").strip())
hostings_domains = [domain for row in hostings for domain in row['domains'] if row['sdownload'] == "0"]
- self.logDebug(hostings_domains)
+ self.log_debug(hostings_domains)
return hostings_domains
diff --git a/module/plugins/hooks/RealdebridComHook.py b/module/plugins/hooks/RealdebridComHook.py
index a1783ce84..da66249b6 100644
--- a/module/plugins/hooks/RealdebridComHook.py
+++ b/module/plugins/hooks/RealdebridComHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class RealdebridComHook(MultiHook):
__name__ = "RealdebridComHook"
__type__ = "hook"
- __version__ = "0.46"
+ __version__ = "0.47"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,6 +18,6 @@ class RealdebridComHook(MultiHook):
__authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")]
- def getHosters(self):
+ def get_hosters(self):
html = self.load("https://real-debrid.com/api/hosters.php").replace("\"", "").strip()
return [x.strip() for x in html.split(",") if x.strip()]
diff --git a/module/plugins/hooks/RehostToHook.py b/module/plugins/hooks/RehostToHook.py
index 7c51823ca..016377e15 100644
--- a/module/plugins/hooks/RehostToHook.py
+++ b/module/plugins/hooks/RehostToHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class RehostToHook(MultiHook):
__name__ = "RehostToHook"
__type__ = "hook"
- __version__ = "0.50"
+ __version__ = "0.51"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,7 +18,7 @@ class RehostToHook(MultiHook):
__authors__ = [("RaNaN", "RaNaN@pyload.org")]
- def getHosters(self):
+ def get_hosters(self):
user, data = self.account.selectAccount()
html = self.load("http://rehost.to/api.php",
get={'cmd' : "get_supported_och_dl",
diff --git a/module/plugins/hooks/RestartFailed.py b/module/plugins/hooks/RestartFailed.py
index 0c74a544a..e19705d31 100644
--- a/module/plugins/hooks/RestartFailed.py
+++ b/module/plugins/hooks/RestartFailed.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Hook import Hook
class RestartFailed(Hook):
__name__ = "RestartFailed"
__type__ = "hook"
- __version__ = "1.59"
+ __version__ = "1.60"
__config__ = [("interval", "int", "Check interval in minutes", 90)]
@@ -18,28 +18,28 @@ class RestartFailed(Hook):
MIN_CHECK_INTERVAL = 15 * 60 #: 15 minutes
- #: def pluginConfigChanged(self, plugin, name, value):
- #: if name == "interval":
- #: interval = value * 60
- #: if self.MIN_CHECK_INTERVAL <= interval != self.interval:
- #: self.core.scheduler.removeJob(self.cb)
- #: self.interval = interval
- #: self.init_periodical()
- #: else:
- #: self.logDebug("Invalid interval value, kept current")
+ # def plugin_config_changed(self, plugin, name, value):
+ # if name == "interval":
+ # interval = value * 60
+ # if self.MIN_CHECK_INTERVAL <= interval != self.interval:
+ # self.core.scheduler.removeJob(self.cb)
+ # self.interval = interval
+ # self.init_periodical()
+ # else:
+ # self.log_debug("Invalid interval value, kept current")
def periodical(self):
- self.logDebug("Restart failed downloads")
+ self.log_debug("Restart failed downloads")
self.core.api.restartFailed()
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- #: self.event_list = ["pluginConfigChanged"]
+ # self.event_map = {'pluginConfigChanged': "plugin_config_changed"}
self.interval = self.MIN_CHECK_INTERVAL
def activate(self):
- #: self.pluginConfigChanged(self.__name__, "interval", self.getConfig('interval'))
- self.interval = max(self.MIN_CHECK_INTERVAL, self.getConfig('interval') * 60)
+ #: self.plugin_config_changed(self.__name__, "interval", self.get_config('interval'))
+ self.interval = max(self.MIN_CHECK_INTERVAL, self.get_config('interval') * 60)
diff --git a/module/plugins/hooks/SimplyPremiumComHook.py b/module/plugins/hooks/SimplyPremiumComHook.py
index db331283d..e522df8b5 100644
--- a/module/plugins/hooks/SimplyPremiumComHook.py
+++ b/module/plugins/hooks/SimplyPremiumComHook.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook
class SimplyPremiumComHook(MultiHook):
__name__ = "SimplyPremiumComHook"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,7 +19,7 @@ class SimplyPremiumComHook(MultiHook):
__authors__ = [("EvolutionClip", "evolutionclip@live.de")]
- def getHosters(self):
+ def get_hosters(self):
json_data = self.load("http://www.simply-premium.com/api/hosts.php", get={'format': "json", 'online': 1})
json_data = json_loads(json_data)
diff --git a/module/plugins/hooks/SimplydebridComHook.py b/module/plugins/hooks/SimplydebridComHook.py
index 9e29a0c9f..228df2af4 100644
--- a/module/plugins/hooks/SimplydebridComHook.py
+++ b/module/plugins/hooks/SimplydebridComHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class SimplydebridComHook(MultiHook):
__name__ = "SimplydebridComHook"
__type__ = "hook"
- __version__ = "0.04"
+ __version__ = "0.05"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,6 +18,6 @@ class SimplydebridComHook(MultiHook):
__authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
- def getHosters(self):
+ def get_hosters(self):
html = self.load("http://simply-debrid.com/api.php", get={'list': 1})
return [x.strip() for x in html.rstrip(';').replace("\"", "").split(";")]
diff --git a/module/plugins/hooks/SkipRev.py b/module/plugins/hooks/SkipRev.py
index 503833d53..8fd49889c 100644
--- a/module/plugins/hooks/SkipRev.py
+++ b/module/plugins/hooks/SkipRev.py
@@ -13,7 +13,7 @@ from module.plugins.internal.Hook import Hook
class SkipRev(Hook):
__name__ = "SkipRev"
__type__ = "hook"
- __version__ = "0.31"
+ __version__ = "0.32"
__config__ = [("mode" , "Auto;Manual", "Choose recovery archives to skip" , "Auto"),
("revtokeep", "int" , "Number of recovery archives to keep for package", 0 )]
@@ -39,9 +39,9 @@ class SkipRev(Hook):
def _name(self, pyfile):
if hasattr(pyfile.pluginmodule, "getInfo"): #@NOTE: getInfo is deprecated in 0.4.10
- return pyfile.pluginmodule.getInfo([pyfile.url]).next()[0]
+ return pyfile.pluginmodule.get_info([pyfile.url]).next()[0]
else:
- self.logWarning("Unable to grab file name")
+ self.log_warning("Unable to grab file name")
return urlparse.urlparse(urllib.unquote(pyfile.url)).path.split('/')[-1]
@@ -64,7 +64,7 @@ class SkipRev(Hook):
if pyfile.statusname is _("unskipped") or not name.endswith(".rev") or not ".part" in name:
return
- revtokeep = -1 if self.getConfig('mode') == "Auto" else self.getConfig('revtokeep')
+ revtokeep = -1 if self.get_config('mode') == "Auto" else self.get_config('revtokeep')
if revtokeep:
status_list = (1, 4, 8, 9, 14) if revtokeep < 0 else (1, 3, 4, 8, 9, 14)
@@ -89,7 +89,7 @@ class SkipRev(Hook):
if pyfile.status != 8 or pyfile.name.rsplit('.', 1)[-1].strip() not in ("rar", "rev"):
return
- revtokeep = -1 if self.getConfig('mode') == "Auto" else self.getConfig('revtokeep')
+ revtokeep = -1 if self.get_config('mode') == "Auto" else self.get_config('revtokeep')
if not revtokeep:
return
diff --git a/module/plugins/hooks/SmoozedComHook.py b/module/plugins/hooks/SmoozedComHook.py
index 2f5e370ee..d1cbd8126 100644
--- a/module/plugins/hooks/SmoozedComHook.py
+++ b/module/plugins/hooks/SmoozedComHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class SmoozedComHook(MultiHook):
__name__ = "SmoozedComHook"
__type__ = "hook"
- __version__ = "0.03"
+ __version__ = "0.04"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -18,6 +18,6 @@ class SmoozedComHook(MultiHook):
__authors__ = [("", "")]
- def getHosters(self):
+ def get_hosters(self):
user, data = self.account.selectAccount()
return self.account.getAccountInfo(user)["hosters"]
diff --git a/module/plugins/hooks/UnSkipOnFail.py b/module/plugins/hooks/UnSkipOnFail.py
index cbfbff1b6..4e1e60f61 100644
--- a/module/plugins/hooks/UnSkipOnFail.py
+++ b/module/plugins/hooks/UnSkipOnFail.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Hook import Hook
class UnSkipOnFail(Hook):
__name__ = "UnSkipOnFail"
__type__ = "hook"
- __version__ = "0.08"
+ __version__ = "0.09"
__config__ = [("activated", "bool", "Activated", True)]
@@ -29,11 +29,11 @@ class UnSkipOnFail(Hook):
return
msg = _("Looking for skipped duplicates of: %s (pid:%s)")
- self.logInfo(msg % (pyfile.name, pyfile.package().id))
+ self.log_info(msg % (pyfile.name, pyfile.package().id))
- link = self.findDuplicate(pyfile)
+ link = self.find_duplicate(pyfile)
if link:
- self.logInfo(_("Queue found duplicate: %s (pid:%s)") % (link.name, link.packageID))
+ self.log_info(_("Queue found duplicate: %s (pid:%s)") % (link.name, link.packageID))
# Change status of "link" to "new_status".
# "link" has to be a valid FileData object,
@@ -50,10 +50,10 @@ class UnSkipOnFail(Hook):
pylink.release()
else:
- self.logInfo(_("No duplicates found"))
+ self.log_info(_("No duplicates found"))
- def findDuplicate(self, pyfile):
+ def find_duplicate(self, pyfile):
"""Search all packages for duplicate links to "pyfile".
Duplicates are links that would overwrite "pyfile".
To test on duplicity the package-folder and link-name
diff --git a/module/plugins/hooks/UpdateManager.py b/module/plugins/hooks/UpdateManager.py
index a06ed97e9..488b300b8 100644
--- a/module/plugins/hooks/UpdateManager.py
+++ b/module/plugins/hooks/UpdateManager.py
@@ -28,7 +28,7 @@ def exists(path):
class UpdateManager(Hook):
__name__ = "UpdateManager"
__type__ = "hook"
- __version__ = "0.53"
+ __version__ = "0.54"
__config__ = [("activated" , "bool", "Activated" , True ),
("checkinterval", "int" , "Check interval in hours" , 8 ),
@@ -63,11 +63,11 @@ class UpdateManager(Hook):
self.info = {'pyload': False, 'version': None, 'plugins': False, 'last_check': time.time()}
self.mtimes = {} #: store modification time for each plugin
- self.event_list = ["allDownloadsProcessed"]
+ self.event_map = {'allDownloadsProcessed': "all_downloads_processed"}
self.interval = 10
- if self.getConfig('checkonstart'):
+ if self.get_config('checkonstart'):
self.core.api.pauseServer()
self.checkonstart = True
else:
@@ -76,27 +76,27 @@ class UpdateManager(Hook):
self.do_restart = False
- def allDownloadsProcessed(self):
+ def all_downloads_processed(self):
if self.do_restart is True:
- self.logWarning(_("Downloads are done, restarting pyLoad to reload the updated plugins"))
+ self.log_warning(_("Downloads are done, restarting pyLoad to reload the updated plugins"))
self.core.api.restart()
def periodical(self):
if self.core.debug:
- if self.getConfig('reloadplugins'):
- self.autoreloadPlugins()
+ if self.get_config('reloadplugins'):
+ self.autoreload_plugins()
- if self.getConfig('nodebugupdate'):
+ if self.get_config('nodebugupdate'):
return
- if self.getConfig('checkperiod') \
- and time.time() - max(self.MIN_CHECK_INTERVAL, self.getConfig('checkinterval') * 60 * 60) > self.info['last_check']:
+ if self.get_config('checkperiod') \
+ and time.time() - max(self.MIN_CHECK_INTERVAL, self.get_config('checkinterval') * 60 * 60) > self.info['last_check']:
self.update()
@Expose
- def autoreloadPlugins(self):
+ def autoreload_plugins(self):
"""
Reload and reindex all modified plugins
"""
@@ -133,7 +133,7 @@ class UpdateManager(Hook):
get={'v': self.core.api.getServerVersion()}).splitlines()
except Exception:
- self.logWarning(_("Unable to retrieve server to get updates"))
+ self.log_warning(_("Unable to retrieve server to get updates"))
@Expose
@@ -142,12 +142,12 @@ class UpdateManager(Hook):
"""
Check for updates
"""
- if self._update() is 2 and self.getConfig('autorestart'):
+ if self._update() is 2 and self.get_config('autorestart'):
if not self.core.api.statusDownloads():
self.core.api.restart()
else:
self.do_restart = True
- self.logWarning(_("Downloads are active, will restart once the download is done"))
+ self.log_warning(_("Downloads are active, will restart once the download is done"))
self.core.api.pauseServer()
@@ -160,15 +160,15 @@ class UpdateManager(Hook):
exitcode = 0
elif data[0] == "None":
- self.logInfo(_("No new pyLoad version available"))
- exitcode = self._updatePlugins(data[1:])
+ self.log_info(_("No new pyLoad version available"))
+ exitcode = self._update_plugins(data[1:])
elif onlyplugin:
exitcode = 0
else:
- self.logInfo(_("*** New pyLoad Version %s available ***") % data[0])
- self.logInfo(_("*** Get it here: https://github.com/pyload/pyload/releases ***"))
+ self.log_info(_("*** New pyLoad Version %s available ***") % data[0])
+ self.log_info(_("*** Get it here: https://github.com/pyload/pyload/releases ***"))
self.info['pyload'] = True
self.info['version'] = data[0]
exitcode = 3
@@ -181,7 +181,7 @@ class UpdateManager(Hook):
return exitcode
- def _updatePlugins(self, data):
+ def _update_plugins(self, data):
"""
Check for plugin updates
"""
@@ -218,8 +218,8 @@ class UpdateManager(Hook):
updatelist.pop(idx)
break
- for t, n in self.removePlugins(sorted(type_plugins)):
- self.logInfo(_("Removed blacklisted plugin: [%(type)s] %(name)s") % {
+ for t, n in self.remove_plugins(sorted(type_plugins)):
+ self.log_info(_("Removed blacklisted plugin: [%(type)s] %(name)s") % {
'type': t,
'name': n,
})
@@ -252,7 +252,7 @@ class UpdateManager(Hook):
else:
continue
- self.logInfo(_(msg) % {'type' : type,
+ self.log_info(_(msg) % {'type' : type,
'name' : name,
'oldver': oldver,
'newver': newver})
@@ -269,21 +269,21 @@ class UpdateManager(Hook):
raise Exception, _("Version mismatch")
except Exception, e:
- self.logError(_("Error updating plugin: %s") % filename, e)
+ self.log_error(_("Error updating plugin: %s") % filename, e)
if updated:
- self.logInfo(_("*** Plugins updated ***"))
+ self.log_info(_("*** Plugins updated ***"))
if self.core.pluginManager.reloadPlugins(updated):
exitcode = 1
else:
- self.logWarning(_("pyLoad restart required to reload the updated plugins"))
+ self.log_warning(_("pyLoad restart required to reload the updated plugins"))
self.info['plugins'] = True
exitcode = 2
self.manager.dispatchEvent("plugin_updated", updated)
else:
- self.logInfo(_("No plugin updates available"))
+ self.log_info(_("No plugin updates available"))
# Exit codes:
# 0 = No plugin updated
@@ -293,7 +293,7 @@ class UpdateManager(Hook):
@Expose
- def removePlugins(self, type_plugins):
+ def remove_plugins(self, type_plugins):
"""
Delete plugins from disk
"""
@@ -302,7 +302,7 @@ class UpdateManager(Hook):
removed = set()
- self.logDebug("Requested deletion of plugins: %s" % type_plugins)
+ self.log_debug("Requested deletion of plugins: %s" % type_plugins)
for type, name in type_plugins:
rootplugins = os.path.join(pypath, "module", "plugins")
@@ -316,7 +316,7 @@ class UpdateManager(Hook):
self.manager.deactivateHook(name)
except Exception, e:
- self.logDebug(e)
+ self.log_debug(e)
for filename in (py_filename, pyc_filename):
if not exists(filename):
@@ -326,7 +326,7 @@ class UpdateManager(Hook):
os.remove(filename)
except OSError, e:
- self.logError(_("Error removing: %s") % filename, e)
+ self.log_error(_("Error removing: %s") % filename, e)
else:
id = (type, name)
diff --git a/module/plugins/hooks/UserAgentSwitcher.py b/module/plugins/hooks/UserAgentSwitcher.py
index ea2d84a43..fdfe4b673 100644
--- a/module/plugins/hooks/UserAgentSwitcher.py
+++ b/module/plugins/hooks/UserAgentSwitcher.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook
class UserAgentSwitcher(Hook):
__name__ = "UserAgentSwitcher"
__type__ = "hook"
- __version__ = "0.09"
+ __version__ = "0.10"
__config__ = [("activated" , "bool", "Activated" , True ),
("connecttimeout", "int" , "Connection timeout in seconds" , 60 ),
@@ -28,9 +28,9 @@ class UserAgentSwitcher(Hook):
def download_preparing(self, pyfile):
- connecttimeout = self.getConfig('connecttimeout')
- maxredirs = self.getConfig('maxredirs')
- useragent = self.getConfig('useragent')
+ connecttimeout = self.get_config('connecttimeout')
+ maxredirs = self.get_config('maxredirs')
+ useragent = self.get_config('useragent')
if connecttimeout:
pyfile.plugin.req.http.c.setopt(pycurl.CONNECTTIMEOUT, connecttimeout)
@@ -39,5 +39,5 @@ class UserAgentSwitcher(Hook):
pyfile.plugin.req.http.c.setopt(pycurl.MAXREDIRS, maxredirs)
if useragent:
- self.logDebug("Use custom user-agent string: " + useragent)
+ self.log_debug("Use custom user-agent string: " + useragent)
pyfile.plugin.req.http.c.setopt(pycurl.USERAGENT, useragent)
diff --git a/module/plugins/hooks/WindowsPhoneNotify.py b/module/plugins/hooks/WindowsPhoneNotify.py
index 713499322..511b4b568 100644
--- a/module/plugins/hooks/WindowsPhoneNotify.py
+++ b/module/plugins/hooks/WindowsPhoneNotify.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Hook import Hook, Expose
class WindowsPhoneNotify(Hook):
__name__ = "WindowsPhoneNotify"
__type__ = "hook"
- __version__ = "0.11"
+ __version__ = "0.12"
__config__ = [("push-id" , "str" , "Push ID" , "" ),
("push-url" , "str" , "Push url" , "" ),
@@ -34,25 +34,26 @@ class WindowsPhoneNotify(Hook):
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- self.event_list = ["allDownloadsProcessed", "plugin_updated"]
+ self.event_list = ["plugin_updated"]
+ self.event_map = {'allDownloadsProcessed': "all_downloads_processed"}
self.last_notify = 0
self.notifications = 0
def plugin_updated(self, type_plugins):
- if not self.getConfig('notifyupdate'):
+ if not self.get_config('notifyupdate'):
return
self.notify(_("Plugins updated"), str(type_plugins))
def activate(self):
- self.key = (self.getConfig('push-id'), self.getConfig('push-url'))
+ self.key = (self.get_config('push-id'), self.get_config('push-url'))
def exit(self):
- if not self.getConfig('notifyexit'):
+ if not self.get_config('notifyexit'):
return
if self.core.do_restart:
@@ -62,19 +63,19 @@ class WindowsPhoneNotify(Hook):
def captcha_task(self, task):
- if not self.getConfig('notifycaptcha'):
+ if not self.get_config('notifycaptcha'):
return
self.notify(_("Captcha"), _("New request waiting user input"))
def package_finished(self, pypack):
- if self.getConfig('notifypackage'):
+ if self.get_config('notifypackage'):
self.notify(_("Package finished"), pypack.name)
- def allDownloadsProcessed(self):
- if not self.getConfig('notifyprocessed'):
+ def all_downloads_processed(self):
+ if not self.get_config('notifyprocessed'):
return
if any(True for pdata in self.core.api.getQueue() if pdata.linksdone < pdata.linkstotal):
@@ -83,7 +84,7 @@ class WindowsPhoneNotify(Hook):
self.notify(_("All packages finished"))
- def getXmlData(self, msg):
+ def get_xml_data(self, msg):
return ("<?xml version='1.0' encoding='utf-8'?> <wp:Notification xmlns:wp='WPNotification'> "
"<wp:Toast> <wp:Text1>pyLoad</wp:Text1> <wp:Text2>%s</wp:Text2> "
"</wp:Toast> </wp:Notification>" % msg)
@@ -99,21 +100,21 @@ class WindowsPhoneNotify(Hook):
if not id or not url:
return
- if self.core.isClientConnected() and not self.getConfig('ignoreclient'):
+ if self.core.isClientConnected() and not self.get_config('ignoreclient'):
return
elapsed_time = time.time() - self.last_notify
- if elapsed_time < self.getConfig("sendtimewait"):
+ if elapsed_time < self.get_config("sendtimewait"):
return
if elapsed_time > 60:
self.notifications = 0
- elif self.notifications >= self.getConfig("sendpermin"):
+ elif self.notifications >= self.get_config("sendpermin"):
return
- request = self.getXmlData("%s: %s" % (event, msg) if msg else event)
+ request = self.get_xml_data("%s: %s" % (event, msg) if msg else event)
webservice = httplib.HTTP(url)
webservice.putrequest("POST", id)
diff --git a/module/plugins/hooks/XFileSharingPro.py b/module/plugins/hooks/XFileSharingPro.py
index 0c103b56a..9c42d1c0a 100644
--- a/module/plugins/hooks/XFileSharingPro.py
+++ b/module/plugins/hooks/XFileSharingPro.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook
class XFileSharingPro(Hook):
__name__ = "XFileSharingPro"
__type__ = "hook"
- __version__ = "0.39"
+ __version__ = "0.40"
__config__ = [("activated" , "bool", "Activated" , True ),
("use_hoster_list" , "bool", "Load listed hosters only" , False),
@@ -34,41 +34,41 @@ class XFileSharingPro(Hook):
"junkyvideo.com", "linestorage.com", "ravishare.com", "ryushare.com",
"salefiles.com", "sendmyway.com", "sharebeast.com", "sharesix.com",
"thefile.me", "verzend.be", "worldbytez.com", "xvidstage.com",
- #NOT TESTED:
+ # NOT TESTED:
"101shared.com", "4upfiles.com", "filemaze.ws", "filenuke.com",
"linkzhost.com", "mightyupload.com", "rockdizfile.com", "sharerepo.com",
"shareswift.com", "uploadbaz.com", "uploadc.com", "vidbull.com",
"zalaa.com", "zomgupload.com",
- #NOT WORKING:
+ # NOT WORKING:
"amonshare.com", "banicrazy.info", "boosterking.com", "host4desi.com", "laoupload.com", "rd-fs.com"]
CRYPTER_BUILTIN = ["junocloud.me", "rapidfileshare.net"]
- #: def pluginConfigChanged(self, plugin, name, value):
- #: self.loadPattern()
+ # def plugin_config_changed(self, plugin, name, value):
+ # self.load_pattern()
def setup(self):
self.info = {} #@TODO: Remove in 0.4.10
- #: self.event_list = ["pluginConfigChanged"]
+ # self.event_map = {'pluginConfigChanged': "plugin_config_changed"}
def activate(self):
- self.loadPattern()
+ self.load_pattern()
- def loadPattern(self):
- use_builtin_list = self.getConfig('use_builtin_list')
+ def load_pattern(self):
+ use_builtin_list = self.get_config('use_builtin_list')
for type, plugin in (("hoster", "XFileSharingPro"),
("crypter", "XFileSharingProFolder")):
- every_plugin = not self.getConfig("use_%s_list" % type)
+ every_plugin = not self.get_config("use_%s_list" % type)
if every_plugin:
- self.logInfo(_("Handling any %s I can!") % type)
+ self.log_info(_("Handling any %s I can!") % type)
pattern = self.regexp[type][0]
else:
- plugins = self.getConfig('%s_list' % type)
+ plugins = self.get_config('%s_list' % type)
plugin_set = set(plugins.replace(' ', '').replace('\\', '').replace('|', ',').replace(';', ',').lower().split(','))
if use_builtin_list:
@@ -77,14 +77,14 @@ class XFileSharingPro(Hook):
plugin_set -= set(('', u''))
if not plugin_set:
- self.logInfo(_("No %s to handle") % type)
+ self.log_info(_("No %s to handle") % type)
self._unload(type, plugin)
return
match_list = '|'.join(sorted(plugin_set))
len_match_list = len(plugin_set)
- self.logInfo(_("Handling %d %s%s: %s") % (len_match_list,
+ self.log_info(_("Handling %d %s%s: %s") % (len_match_list,
type,
"" if len_match_list == 1 else "s",
match_list.replace('|', ', ')))
@@ -95,7 +95,7 @@ class XFileSharingPro(Hook):
dict['pattern'] = pattern
dict['re'] = re.compile(pattern)
- self.logDebug("Loaded %s pattern: %s" % (type, pattern))
+ self.log_debug("Loaded %s pattern: %s" % (type, pattern))
def _unload(self, type, plugin):
@@ -105,13 +105,13 @@ class XFileSharingPro(Hook):
def deactivate(self):
- #: self.unloadHoster("BasePlugin")
+ #: self.unload_hoster("BasePlugin")
for type, plugin in (("hoster", "XFileSharingPro"),
("crypter", "XFileSharingProFolder")):
self._unload(type, plugin)
- def unloadHoster(self, hoster):
+ def unload_hoster(self, hoster):
hdict = self.core.pluginManager.hosterPlugins[hoster]
if "new_name" in hdict and hdict['new_name'] == "XFileSharingPro":
if "module" in hdict:
@@ -126,10 +126,10 @@ class XFileSharingPro(Hook):
return False
- #: def download_failed(self, pyfile):
- #: if pyfile.pluginname == "BasePlugin" \
- #: and pyfile.hasStatus("failed") \
- #: and not self.getConfig('use_hoster_list') \
- #: and self.unloadHoster("BasePlugin"):
- #: self.logDebug("Unloaded XFileSharingPro from BasePlugin")
- #: pyfile.setStatus("queued")
+ # def download_failed(self, pyfile):
+ # if pyfile.pluginname == "BasePlugin" \
+ # and pyfile.hasStatus("failed") \
+ # and not self.get_config('use_hoster_list') \
+ # and self.unload_hoster("BasePlugin"):
+ # self.log_debug("Unloaded XFileSharingPro from BasePlugin")
+ # pyfile.setStatus("queued")
diff --git a/module/plugins/hooks/XMPPInterface.py b/module/plugins/hooks/XMPPInterface.py
index 8a76257ad..a2c32166f 100644
--- a/module/plugins/hooks/XMPPInterface.py
+++ b/module/plugins/hooks/XMPPInterface.py
@@ -12,7 +12,7 @@ from module.plugins.hooks.IRCInterface import IRCInterface
class XMPPInterface(IRCInterface, JabberClient):
__name__ = "XMPPInterface"
__type__ = "hook"
- __version__ = "0.11"
+ __version__ = "0.12"
__config__ = [("jid" , "str" , "Jabber ID" , "user@exmaple-jabber-server.org" ),
("pw" , "str" , "Password" , "" ),
@@ -33,14 +33,14 @@ class XMPPInterface(IRCInterface, JabberClient):
def __init__(self, core, manager):
IRCInterface.__init__(self, core, manager)
- self.jid = JID(self.getConfig('jid'))
- password = self.getConfig('pw')
+ self.jid = JID(self.get_config('jid'))
+ password = self.get_config('pw')
#: if bare JID is provided add a resource -- it is required
if not self.jid.resource:
self.jid = JID(self.jid.node, self.jid.domain, "pyLoad")
- if self.getConfig('tls'):
+ if self.get_config('tls'):
tls_settings = streamtls.TLSSettings(require=True, verify_peer=False)
auth = ("sasl:PLAIN", "sasl:DIGEST-MD5")
else:
@@ -67,7 +67,7 @@ class XMPPInterface(IRCInterface, JabberClient):
def package_finished(self, pypack):
try:
- if self.getConfig('info_pack'):
+ if self.get_config('info_pack'):
self.announce(_("Package finished: %s") % pypack.name)
except Exception:
pass
@@ -75,7 +75,7 @@ class XMPPInterface(IRCInterface, JabberClient):
def download_finished(self, pyfile):
try:
- if self.getConfig('info_file'):
+ if self.get_config('info_file'):
self.announce(
_("Download finished: %(name)s @ %(plugin)s") % {"name": pyfile.name, "plugin": pyfile.pluginname})
except Exception:
@@ -88,7 +88,7 @@ class XMPPInterface(IRCInterface, JabberClient):
try:
self.loop()
except Exception, ex:
- self.logError(ex)
+ self.log_error(ex)
def stream_state_changed(self, state, arg):
@@ -97,19 +97,19 @@ class XMPPInterface(IRCInterface, JabberClient):
to a server changes. This will usually be used to let the user
know what is going on.
"""
- self.logDebug("*** State changed: %s %r ***" % (state, arg))
+ self.log_debug("*** State changed: %s %r ***" % (state, arg))
def disconnected(self):
- self.logDebug("Client was disconnected")
+ self.log_debug("Client was disconnected")
def stream_closed(self, stream):
- self.logDebug("Stream was closed", stream)
+ self.log_debug("Stream was closed", stream)
def stream_error(self, err):
- self.logDebug("Stream Error", err)
+ self.log_debug("Stream Error", err)
def get_message_handlers(self):
@@ -129,8 +129,8 @@ class XMPPInterface(IRCInterface, JabberClient):
subject = stanza.get_subject()
body = stanza.get_body()
t = stanza.get_type()
- self.logDebug("Message from %s received." % stanza.get_from())
- self.logDebug("Body: %s Subject: %s Type: %s" % (body, subject, t))
+ self.log_debug("Message from %s received." % stanza.get_from())
+ self.log_debug("Body: %s Subject: %s Type: %s" % (body, subject, t))
if t == "headline":
#: 'headline' messages should never be replied to
@@ -141,11 +141,11 @@ class XMPPInterface(IRCInterface, JabberClient):
to_jid = stanza.get_from()
from_jid = stanza.get_to()
- #j = JID()
+ # j = JID()
to_name = to_jid.as_utf8()
from_name = from_jid.as_utf8()
- names = self.getConfig('owners').split(";")
+ names = self.get_config('owners').split(";")
if to_name in names or to_jid.node + "@" + to_jid.domain in names:
messages = []
@@ -174,7 +174,7 @@ class XMPPInterface(IRCInterface, JabberClient):
messages.append(m)
except Exception, e:
- self.logError(e)
+ self.log_error(e)
return messages
@@ -190,8 +190,8 @@ class XMPPInterface(IRCInterface, JabberClient):
"""
Send message to all owners
"""
- for user in self.getConfig('owners').split(";"):
- self.logDebug("Send message to", user)
+ for user in self.get_config('owners').split(";"):
+ self.log_debug("Send message to", user)
to_jid = JID(user)
diff --git a/module/plugins/hooks/ZeveraComHook.py b/module/plugins/hooks/ZeveraComHook.py
index 611fc5d91..c0109eb38 100644
--- a/module/plugins/hooks/ZeveraComHook.py
+++ b/module/plugins/hooks/ZeveraComHook.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook
class ZeveraComHook(MultiHook):
__name__ = "ZeveraComHook"
__type__ = "hook"
- __version__ = "0.05"
+ __version__ = "0.06"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -19,6 +19,6 @@ class ZeveraComHook(MultiHook):
("Walter Purcaro", "vuolter@gmail.com" )]
- def getHosters(self):
+ def get_hosters(self):
html = self.account.api_response(pyreq.getHTTPRequest(timeout=120), cmd="gethosters")
return [x.strip() for x in html.split(",")]
diff --git a/module/plugins/hoster/AlldebridCom.py b/module/plugins/hoster/AlldebridCom.py
index e0daa6657..46379bdc9 100644
--- a/module/plugins/hoster/AlldebridCom.py
+++ b/module/plugins/hoster/AlldebridCom.py
@@ -11,7 +11,7 @@ from module.utils import parseFileSize
class AlldebridCom(MultiHoster):
__name__ = "AlldebridCom"
__type__ = "hoster"
- __version__ = "0.47"
+ __version__ = "0.48"
__pattern__ = r'https?://(?:www\.|s\d+\.)?alldebrid\.com/dl/[\w^_]+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -23,23 +23,23 @@ class AlldebridCom(MultiHoster):
def setup(self):
- self.chunkLimit = 16
+ self.chunk_limit = 16
- def handlePremium(self, pyfile):
- password = self.getPassword()
+ def handle_premium(self, pyfile):
+ password = self.get_password()
data = json_loads(self.load("http://www.alldebrid.com/service.php",
get={'link': pyfile.url, 'json': "true", 'pw': password}))
- self.logDebug("Json data", data)
+ self.log_debug("Json data", data)
if data['error']:
if data['error'] == "This link isn't available on the hoster website.":
self.offline()
else:
- self.logWarning(data['error'])
- self.tempOffline()
+ self.log_warning(data['error'])
+ self.temp_offline()
else:
if pyfile.name and not pyfile.name.endswith('.tmp'):
pyfile.name = data['filename']
diff --git a/module/plugins/hoster/AndroidfilehostCom.py b/module/plugins/hoster/AndroidfilehostCom.py
index e5f2c7f88..35e311154 100644
--- a/module/plugins/hoster/AndroidfilehostCom.py
+++ b/module/plugins/hoster/AndroidfilehostCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class AndroidfilehostCom(SimpleHoster):
__name__ = "AndroidfilehostCom"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'https?://(?:www\.)?androidfilehost\.com/\?fid=\d+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -31,17 +31,17 @@ class AndroidfilehostCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.resumeDownload = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.resume_download = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
wait = re.search(self.WAIT_PATTERN, self.html)
- self.logDebug("Waiting time: %s seconds" % wait.group(1))
+ self.log_debug("Waiting time: %s seconds" % wait.group(1))
fid = re.search(r'id="fid" value="(\d+)" />', self.html).group(1)
- self.logDebug("fid: %s" % fid)
+ self.log_debug("fid: %s" % fid)
html = self.load("https://www.androidfilehost.com/libs/otf/mirrors.otf.php",
post={'submit': 'submit',
@@ -51,7 +51,7 @@ class AndroidfilehostCom(SimpleHoster):
self.link = re.findall('"url":"(.*?)"', html)[0].replace("\\", "")
mirror_host = self.link.split("/")[2]
- self.logDebug("Mirror Host: %s" % mirror_host)
+ self.log_debug("Mirror Host: %s" % mirror_host)
html = self.load("https://www.androidfilehost.com/libs/otf/stats.otf.php",
get={'fid' : fid,
diff --git a/module/plugins/hoster/BasePlugin.py b/module/plugins/hoster/BasePlugin.py
index 82311dd6b..7fc0426ea 100644
--- a/module/plugins/hoster/BasePlugin.py
+++ b/module/plugins/hoster/BasePlugin.py
@@ -12,7 +12,7 @@ from module.plugins.internal.Hoster import Hoster
class BasePlugin(Hoster):
__name__ = "BasePlugin"
__type__ = "hoster"
- __version__ = "0.44"
+ __version__ = "0.45"
__pattern__ = r'^unmatchable$'
@@ -23,7 +23,7 @@ class BasePlugin(Hoster):
@classmethod
- def getInfo(cls, url="", html=""): #@TODO: Move to hoster class in 0.4.10
+ def get_info(cls, url="", html=""): #@TODO: Move to hoster class in 0.4.10
url = urllib.unquote(url)
url_p = urlparse.urlparse(url)
return {'name' : (url_p.path.split('/')[-1]
@@ -35,23 +35,23 @@ class BasePlugin(Hoster):
def setup(self):
- self.chunkLimit = -1
- self.multiDL = True
- self.resumeDownload = True
+ self.chunk_limit = -1
+ self.multi_dl = True
+ self.resume_download = True
def process(self, pyfile):
"""
Main function
"""
- pyfile.name = self.getInfo(pyfile.url)['name']
+ pyfile.name = self.get_info(pyfile.url)['name']
if not pyfile.url.startswith("http"):
self.fail(_("No plugin matched"))
for _i in xrange(5):
try:
- link = self.directLink(self, urllib.unquote(pyfile.url))
+ link = self.direct_link(self, urllib.unquote(pyfile.url))
if link:
self.download(link, ref=False, disposition=True)
@@ -63,17 +63,17 @@ class BasePlugin(Hoster):
self.offline()
elif e.code in (401, 403):
- self.logDebug("Auth required", "Received HTTP status code: %d" % e.code)
+ self.log_debug("Auth required", "Received HTTP status code: %d" % e.code)
account = self.core.accountManager.getAccountPlugin('Http')
servers = [x['login'] for x in account.getAllAccounts()]
server = urlparse.urlparse(pyfile.url).netloc
if server in servers:
- self.logDebug("Logging on to %s" % server)
+ self.log_debug("Logging on to %s" % server)
self.req.addAuth(account.getAccountData(server)['password'])
else:
- pwd = self.getPassword()
+ pwd = self.get_password()
if ':' in pwd:
self.req.addAuth(pwd)
else:
@@ -85,7 +85,7 @@ class BasePlugin(Hoster):
else:
self.fail(_("No file downloaded")) #@TODO: Move to hoster class in 0.4.10
- errmsg = self.checkDownload({'Empty file' : re.compile(r'\A\s*\Z'),
+ errmsg = self.check_download({'Empty file' : re.compile(r'\A\s*\Z'),
'Html error' : re.compile(r'\A(?:\s*<.+>)?((?:[\w\s]*(?:[Ee]rror|ERROR)\s*\:?)?\s*\d{3})(?:\Z|\s+)'),
'Html file' : re.compile(r'\A\s*<!DOCTYPE html'),
'Request error': re.compile(r'([Aa]n error occured while processing your request)')})
@@ -93,11 +93,11 @@ class BasePlugin(Hoster):
return
try:
- errmsg += " | " + self.lastCheck.group(1).strip()
+ errmsg += " | " + self.last_check.group(1).strip()
except Exception:
pass
- self.logWarning("Check result: " + errmsg, "Waiting 1 minute and retry")
+ self.log_warning("Check result: " + errmsg, "Waiting 1 minute and retry")
self.retry(3, 60, errmsg)
diff --git a/module/plugins/hoster/BasketbuildCom.py b/module/plugins/hoster/BasketbuildCom.py
index cfc945464..709360544 100644
--- a/module/plugins/hoster/BasketbuildCom.py
+++ b/module/plugins/hoster/BasketbuildCom.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class BasketbuildCom(SimpleHoster):
__name__ = "BasketbuildCom"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?(?:\w\.)?basketbuild\.com/filedl/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,12 +28,12 @@ class BasketbuildCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.resumeDownload = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.resume_download = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
try:
link1 = re.search(r'href="(.+dlgate/.+)"', self.html).group(1)
self.html = self.load(link1)
@@ -42,15 +42,15 @@ class BasketbuildCom(SimpleHoster):
self.error(_("Hop #1 not found"))
else:
- self.logDebug("Next hop: %s" % link1)
+ self.log_debug("Next hop: %s" % link1)
try:
wait = re.search(r'var sec = (\d+)', self.html).group(1)
- self.logDebug("Wait %s seconds" % wait)
+ self.log_debug("Wait %s seconds" % wait)
self.wait(wait)
except AttributeError:
- self.logDebug("No wait time found")
+ self.log_debug("No wait time found")
try:
self.link = re.search(r'id="dlLink">\s*<a href="(.+?)"', self.html).group(1)
diff --git a/module/plugins/hoster/BayfilesCom.py b/module/plugins/hoster/BayfilesCom.py
index cccd4acc7..1c35bcc60 100644
--- a/module/plugins/hoster/BayfilesCom.py
+++ b/module/plugins/hoster/BayfilesCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class BayfilesCom(DeadHoster):
__name__ = "BayfilesCom"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>\w+/\w+/[^/]+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/BezvadataCz.py b/module/plugins/hoster/BezvadataCz.py
index d3f25d52f..f0514b817 100644
--- a/module/plugins/hoster/BezvadataCz.py
+++ b/module/plugins/hoster/BezvadataCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class BezvadataCz(SimpleHoster):
__name__ = "BezvadataCz"
__type__ = "hoster"
- __version__ = "0.27"
+ __version__ = "0.28"
__pattern__ = r'http://(?:www\.)?bezvadata\.cz/stahnout/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -24,22 +24,22 @@ class BezvadataCz(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
- #download button
+ def handle_free(self, pyfile):
+ # download button
m = re.search(r'<a class="stahnoutSoubor".*?href="(.*?)"', self.html)
if m is None:
self.error(_("Page 1 URL not found"))
url = "http://bezvadata.cz%s" % m.group(1)
- #captcha form
+ # captcha form
self.html = self.load(url)
- self.checkErrors()
+ self.check_errors()
for _i in xrange(5):
- action, inputs = self.parseHtmlForm('frm-stahnoutFreeForm')
+ action, inputs = self.parse_html_form('frm-stahnoutFreeForm')
if not inputs:
self.error(_("FreeForm"))
@@ -47,31 +47,31 @@ class BezvadataCz(SimpleHoster):
if m is None:
self.error(_("Wrong captcha image"))
- #captcha image is contained in html page as base64encoded data but decryptCaptcha() expects image url
+ # captcha image is contained in html page as base64encoded data but decryptCaptcha() expects image url
self.load, proper_load = self.loadcaptcha, self.load
try:
- inputs['captcha'] = self.decryptCaptcha(m.group(1), imgtype='png')
+ inputs['captcha'] = self.decrypt_captcha(m.group(1), imgtype='png')
finally:
self.load = proper_load
if '<img src="data:image/png;base64' in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
self.fail(_("No valid captcha code entered"))
- #download url
+ # download url
self.html = self.load("http://bezvadata.cz%s" % action, post=inputs)
- self.checkErrors()
+ self.check_errors()
m = re.search(r'<a class="stahnoutSoubor2" href="(.*?)">', self.html)
if m is None:
self.error(_("Page 2 URL not found"))
url = "http://bezvadata.cz%s" % m.group(1)
- self.logDebug("DL URL %s" % url)
+ self.log_debug("DL URL %s" % url)
- #countdown
+ # countdown
m = re.search(r'id="countdown">(\d\d):(\d\d)<', self.html)
wait_time = (int(m.group(1)) * 60 + int(m.group(2))) if m else 120
self.wait(wait_time, False)
@@ -79,11 +79,11 @@ class BezvadataCz(SimpleHoster):
self.link = url
- def checkErrors(self):
+ def check_errors(self):
if 'images/button-download-disable.png' in self.html:
self.wait(5 * 60, 24, _("Download limit reached")) #: parallel dl limit
elif '<div class="infobox' in self.html:
- self.tempOffline()
+ self.temp_offline()
else:
return super(BezvadataCz, self).checkErrors()
diff --git a/module/plugins/hoster/BillionuploadsCom.py b/module/plugins/hoster/BillionuploadsCom.py
index d0fbd7a8b..916e847e0 100644
--- a/module/plugins/hoster/BillionuploadsCom.py
+++ b/module/plugins/hoster/BillionuploadsCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class BillionuploadsCom(DeadHoster):
__name__ = "BillionuploadsCom"
__type__ = "hoster"
- __version__ = "0.06"
+ __version__ = "0.07"
__pattern__ = r'http://(?:www\.)?billionuploads\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py
index 2736d98a8..d312cf277 100644
--- a/module/plugins/hoster/BitshareCom.py
+++ b/module/plugins/hoster/BitshareCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class BitshareCom(SimpleHoster):
__name__ = "BitshareCom"
__type__ = "hoster"
- __version__ = "0.54"
+ __version__ = "0.55"
__pattern__ = r'http://(?:www\.)?bitshare\.com/(files/)?(?(1)|\?f=)(?P<ID>\w+)(?(1)/(?P<NAME>.+?)\.html)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,8 +32,8 @@ class BitshareCom(SimpleHoster):
def setup(self):
- self.multiDL = self.premium
- self.chunkLimit = 1
+ self.multi_dl = self.premium
+ self.chunk_limit = 1
def process(self, pyfile):
@@ -43,7 +43,7 @@ class BitshareCom(SimpleHoster):
#: File id
m = re.match(self.__pattern__, pyfile.url)
self.file_id = max(m.group('ID1'), m.group('ID2'))
- self.logDebug("File id is [%s]" % self.file_id)
+ self.log_debug("File id is [%s]" % self.file_id)
#: Load main page
self.html = self.load(pyfile.url, ref=False)
@@ -54,7 +54,7 @@ class BitshareCom(SimpleHoster):
#: Check Traffic used up
if re.search(self.TRAFFIC_USED_UP, self.html):
- self.logInfo(_("Your Traffic is used up for today"))
+ self.log_info(_("Your Traffic is used up for today"))
self.wait(30 * 60, True)
self.retry()
@@ -69,16 +69,16 @@ class BitshareCom(SimpleHoster):
#: Ajax file id
self.ajaxid = re.search(self.AJAXID_PATTERN, self.html).group(1)
- self.logDebug("File ajax id is [%s]" % self.ajaxid)
+ self.log_debug("File ajax id is [%s]" % self.ajaxid)
#: This may either download our file or forward us to an error page
- self.link = self.getDownloadUrl()
+ self.link = self.get_download_url()
- if self.checkDownload({"error": ">Error occured<"}):
+ if self.check_download({"error": ">Error occured<"}):
self.retry(5, 5 * 60, "Bitshare host : Error occured")
- def getDownloadUrl(self):
+ def get_download_url(self):
#: Return location if direct download is active
if self.premium:
header = self.load(self.pyfile.url, just_header=True)
@@ -86,22 +86,22 @@ class BitshareCom(SimpleHoster):
return header['location']
#: Get download info
- self.logDebug("Getting download info")
+ self.log_debug("Getting download info")
res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
post={"request": "generateID", "ajaxid": self.ajaxid})
- self.handleErrors(res, ':')
+ self.handle_errors(res, ':')
parts = res.split(":")
filetype = parts[0]
wait = int(parts[1])
captcha = int(parts[2])
- self.logDebug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha))
+ self.log_debug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha))
#: Waiting
if wait > 0:
- self.logDebug("Waiting %d seconds." % wait)
+ self.log_debug("Waiting %d seconds." % wait)
if wait < 120:
self.wait(wait, False)
else:
@@ -110,7 +110,7 @@ class BitshareCom(SimpleHoster):
#: Resolve captcha
if captcha == 1:
- self.logDebug("File is captcha protected")
+ self.log_debug("File is captcha protected")
recaptcha = ReCaptcha(self)
#: Try up to 3 times
@@ -121,23 +121,23 @@ class BitshareCom(SimpleHoster):
"ajaxid" : self.ajaxid,
"recaptcha_challenge_field": challenge,
"recaptcha_response_field" : response})
- if self.handleCaptchaErrors(res):
+ if self.handle_captcha_errors(res):
break
#: Get download URL
- self.logDebug("Getting download url")
+ self.log_debug("Getting download url")
res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
post={"request": "getDownloadURL", "ajaxid": self.ajaxid})
- self.handleErrors(res, '#')
+ self.handle_errors(res, '#')
url = res.split("#")[-1]
return url
- def handleErrors(self, res, separator):
- self.logDebug("Checking response [%s]" % res)
+ def handle_errors(self, res, separator):
+ self.log_debug("Checking response [%s]" % res)
if "ERROR:Session timed out" in res:
self.retry()
elif "ERROR" in res:
@@ -145,15 +145,15 @@ class BitshareCom(SimpleHoster):
self.fail(msg)
- def handleCaptchaErrors(self, res):
- self.logDebug("Result of captcha resolving [%s]" % res)
+ def handle_captcha_errors(self, res):
+ self.log_debug("Result of captcha resolving [%s]" % res)
if "SUCCESS" in res:
- self.correctCaptcha()
+ self.correct_captcha()
return True
elif "ERROR:SESSION ERROR" in res:
self.retry()
- self.invalidCaptcha()
+ self.invalid_captcha()
getInfo = create_getInfo(BitshareCom)
diff --git a/module/plugins/hoster/BoltsharingCom.py b/module/plugins/hoster/BoltsharingCom.py
index db813ba2e..579b4ce39 100644
--- a/module/plugins/hoster/BoltsharingCom.py
+++ b/module/plugins/hoster/BoltsharingCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class BoltsharingCom(DeadHoster):
__name__ = "BoltsharingCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?boltsharing\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/CatShareNet.py b/module/plugins/hoster/CatShareNet.py
index 795da6229..04b9792ad 100644
--- a/module/plugins/hoster/CatShareNet.py
+++ b/module/plugins/hoster/CatShareNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha
class CatShareNet(SimpleHoster):
__name__ = "CatShareNet"
__type__ = "hoster"
- __version__ = "0.15"
+ __version__ = "0.16"
__pattern__ = r'http://(?:www\.)?catshare\.net/\w{16}'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,11 +32,11 @@ class CatShareNet(SimpleHoster):
def setup(self):
- self.multiDL = self.premium
- self.resumeDownload = True
+ self.multi_dl = self.premium
+ self.resume_download = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
recaptcha = ReCaptcha(self)
response, challenge = recaptcha.challenge()
diff --git a/module/plugins/hoster/CloudzerNet.py b/module/plugins/hoster/CloudzerNet.py
index af40b8d5f..02cc416aa 100644
--- a/module/plugins/hoster/CloudzerNet.py
+++ b/module/plugins/hoster/CloudzerNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class CloudzerNet(DeadHoster):
__name__ = "CloudzerNet"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?(cloudzer\.net/file/|clz\.to/(file/)?)\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/CloudzillaTo.py b/module/plugins/hoster/CloudzillaTo.py
index 09453137d..f58a0aa61 100644
--- a/module/plugins/hoster/CloudzillaTo.py
+++ b/module/plugins/hoster/CloudzillaTo.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class CloudzillaTo(SimpleHoster):
__name__ = "CloudzillaTo"
__type__ = "hoster"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/file/(?P<ID>[\w^_]+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -24,9 +24,9 @@ class CloudzillaTo(SimpleHoster):
PASSWORD_PATTERN = r'<div id="pwd_protected">'
- def checkErrors(self):
+ def check_errors(self):
if re.search(self.PASSWORD_PATTERN, self.html):
- pw = self.getPassword()
+ pw = self.get_password()
if pw:
self.html = self.load(self.pyfile.url, get={'key': pw})
else:
@@ -38,13 +38,13 @@ class CloudzillaTo(SimpleHoster):
return super(CloudzillaTo, self).checkErrors()
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load("http://www.cloudzilla.to/generateticket/",
- post={'file_id': self.info['pattern']['ID'], 'key': self.getPassword()})
+ post={'file_id': self.info['pattern']['ID'], 'key': self.get_password()})
ticket = dict(re.findall(r'<(.+?)>([^<>]+?)</', self.html))
- self.logDebug(ticket)
+ self.log_debug(ticket)
if 'error' in ticket:
if "File is password protected" in ticket['error']:
@@ -60,8 +60,8 @@ class CloudzillaTo(SimpleHoster):
'ticket_id': ticket['ticket_id']}
- def handlePremium(self, pyfile):
- return self.handleFree(pyfile)
+ def handle_premium(self, pyfile):
+ return self.handle_free(pyfile)
getInfo = create_getInfo(CloudzillaTo)
diff --git a/module/plugins/hoster/CramitIn.py b/module/plugins/hoster/CramitIn.py
index 44dac958d..7f85fcd0b 100644
--- a/module/plugins/hoster/CramitIn.py
+++ b/module/plugins/hoster/CramitIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class CramitIn(XFSHoster):
__name__ = "CramitIn"
__type__ = "hoster"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'http://(?:www\.)?cramit\.in/\w{12}'
diff --git a/module/plugins/hoster/CrockoCom.py b/module/plugins/hoster/CrockoCom.py
index 098ba5fab..5250af2c3 100644
--- a/module/plugins/hoster/CrockoCom.py
+++ b/module/plugins/hoster/CrockoCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class CrockoCom(SimpleHoster):
__name__ = "CrockoCom"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?(crocko|easy-share)\.com/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,7 +32,7 @@ class CrockoCom(SimpleHoster):
NAME_REPLACEMENTS = [(r'<.*?>', '')]
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if "You need Premium membership to download this file." in self.html:
self.fail(_("You need Premium membership to download this file"))
@@ -57,8 +57,8 @@ class CrockoCom(SimpleHoster):
inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge()
self.download(action, post=inputs)
- if self.checkDownload({"captcha": recaptcha.KEY_AJAX_PATTERN}):
- self.invalidCaptcha()
+ if self.check_download({"captcha": recaptcha.KEY_AJAX_PATTERN}):
+ self.invalid_captcha()
else:
break
else:
diff --git a/module/plugins/hoster/CyberlockerCh.py b/module/plugins/hoster/CyberlockerCh.py
index 9d748bf85..e524f63fe 100644
--- a/module/plugins/hoster/CyberlockerCh.py
+++ b/module/plugins/hoster/CyberlockerCh.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class CyberlockerCh(DeadHoster):
__name__ = "CyberlockerCh"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?cyberlocker\.ch/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/CzshareCom.py b/module/plugins/hoster/CzshareCom.py
index 01e120e5e..0e28f31dd 100644
--- a/module/plugins/hoster/CzshareCom.py
+++ b/module/plugins/hoster/CzshareCom.py
@@ -12,7 +12,7 @@ from module.utils import parseFileSize
class CzshareCom(SimpleHoster):
__name__ = "CzshareCom"
__type__ = "hoster"
- __version__ = "1.00"
+ __version__ = "1.01"
__pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/(\d+/|download\.php\?).+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -39,7 +39,7 @@ class CzshareCom(SimpleHoster):
USER_CREDIT_PATTERN = r'<div class="credit">\s*kredit: <strong>([\d .,]+)(\w+)</strong>\s*</div><!-- .credit -->'
- def checkTrafficLeft(self):
+ def check_traffic_left(self):
#: check if user logged in
m = re.search(self.USER_CREDIT_PATTERN, self.html)
if m is None:
@@ -52,32 +52,32 @@ class CzshareCom(SimpleHoster):
#: check user credit
try:
credit = parseFileSize(m.group(1).replace(' ', ''), m.group(2))
- self.logInfo(_("Premium download for %i KiB of Credit") % (self.pyfile.size / 1024))
- self.logInfo(_("User %s has %i KiB left") % (self.user, credit / 1024))
+ self.log_info(_("Premium download for %i KiB of Credit") % (self.pyfile.size / 1024))
+ self.log_info(_("User %s has %i KiB left") % (self.user, credit / 1024))
if credit < self.pyfile.size:
- self.logInfo(_("Not enough credit to download file: %s") % self.pyfile.name)
+ self.log_info(_("Not enough credit to download file: %s") % self.pyfile.name)
return False
except Exception, e:
#: let's continue and see what happens...
- self.logError(e)
+ self.log_error(e)
return True
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
#: parse download link
try:
form = re.search(self.PREMIUM_FORM_PATTERN, self.html, re.S).group(1)
inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form))
except Exception, e:
- self.logError(e)
- self.resetAccount()
+ self.log_error(e)
+ self.reset_account()
#: download the file, destination is determined by pyLoad
self.download("http://sdilej.cz/profi_down.php", post=inputs, disposition=True)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: get free url
m = re.search(self.FREE_URL_PATTERN, self.html)
if m is None:
@@ -85,7 +85,7 @@ class CzshareCom(SimpleHoster):
parsed_url = "http://sdilej.cz" + m.group(1)
- self.logDebug("PARSED_URL:" + parsed_url)
+ self.log_debug("PARSED_URL:" + parsed_url)
#: get download ticket and parse html
self.html = self.load(parsed_url)
@@ -98,32 +98,32 @@ class CzshareCom(SimpleHoster):
pyfile.size = int(inputs['size'])
except Exception, e:
- self.logError(e)
+ self.log_error(e)
self.error(_("Form"))
#: get and decrypt captcha
captcha_url = 'http://sdilej.cz/captcha.php'
for _i in xrange(5):
- inputs['captchastring2'] = self.decryptCaptcha(captcha_url)
+ inputs['captchastring2'] = self.decrypt_captcha(captcha_url)
self.html = self.load(parsed_url, post=inputs)
if u"<li>ZadanÃœ ověřovací kód nesouhlasí!</li>" in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
elif re.search(self.MULTIDL_PATTERN, self.html):
self.wait(5 * 60, 12, _("Download limit reached"))
else:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
self.fail(_("No valid captcha code entered"))
m = re.search("countdown_number = (\d+);", self.html)
- self.setWait(int(m.group(1)) if m else 50)
+ self.set_wait(int(m.group(1)) if m else 50)
#: download the file, destination is determined by pyLoad
- self.logDebug("WAIT URL", self.req.lastEffectiveURL)
+ self.log_debug("WAIT URL", self.req.lastEffectiveURL)
m = re.search("free_wait.php\?server=(.*?)&(.*)", self.req.lastEffectiveURL)
if m is None:
@@ -134,9 +134,9 @@ class CzshareCom(SimpleHoster):
self.wait()
- def checkFile(self):
+ def check_file(self):
#: check download
- check = self.checkDownload({
+ check = self.check_download({
"temp offline" : re.compile(r"^Soubor je do.*asn.* nedostupn.*$"),
"credit" : re.compile(r"^Nem.*te dostate.*n.* kredit.$"),
"multi-dl" : re.compile(self.MULTIDL_PATTERN),
@@ -147,13 +147,13 @@ class CzshareCom(SimpleHoster):
self.fail(_("File not available - try later"))
elif check == "credit":
- self.resetAccount()
+ self.reset_account()
elif check == "multi-dl":
self.wait(5 * 60, 12, _("Download limit reached"))
elif check == "captcha":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry()
return super(CzshareCom, self).checkFile()
diff --git a/module/plugins/hoster/DailymotionCom.py b/module/plugins/hoster/DailymotionCom.py
index f9cc0d28e..18f84ff56 100644
--- a/module/plugins/hoster/DailymotionCom.py
+++ b/module/plugins/hoster/DailymotionCom.py
@@ -8,7 +8,7 @@ from module.network.RequestFactory import getURL
from module.plugins.internal.Hoster import Hoster
-def getInfo(urls):
+def get_info(urls):
result = []
regex = re.compile(DailymotionCom.__pattern__)
apiurl = "https://api.dailymotion.com/video/%s"
@@ -40,7 +40,7 @@ def getInfo(urls):
class DailymotionCom(Hoster):
__name__ = "DailymotionCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'https?://(?:www\.)?dailymotion\.com/.*video/(?P<ID>[\w^_]+)'
__config__ = [("quality", "Lowest;LD 144p;LD 240p;SD 384p;HQ 480p;HD 720p;HD 1080p;Highest", "Quality", "Highest")]
@@ -51,11 +51,11 @@ class DailymotionCom(Hoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def getStreams(self):
+ def get_streams(self):
streams = []
for result in re.finditer(r"\"(?P<URL>http:\\/\\/www.dailymotion.com\\/cdn\\/H264-(?P<QF>.*?)\\.*?)\"",
@@ -71,8 +71,8 @@ class DailymotionCom(Hoster):
return sorted(streams, key=lambda x: x[0][::-1])
- def getQuality(self):
- q = self.getConfig('quality')
+ def get_quality(self):
+ q = self.get_config('quality')
if q == "Lowest":
quality = 0
@@ -84,7 +84,7 @@ class DailymotionCom(Hoster):
return quality
- def getLink(self, streams, quality):
+ def get_link(self, streams, quality):
if quality > 0:
for x, s in [item for item in enumerate(streams)][::-1]:
qf = s[0][1]
@@ -98,28 +98,28 @@ class DailymotionCom(Hoster):
s = streams[idx]
- self.logInfo(_("Download video quality %sx%s") % s[0])
+ self.log_info(_("Download video quality %sx%s") % s[0])
return s[1]
- def checkInfo(self, pyfile):
- pyfile.name, pyfile.size, pyfile.status, pyfile.url = getInfo([pyfile.url])[0]
+ def check_info(self, pyfile):
+ pyfile.name, pyfile.size, pyfile.status, pyfile.url = get_info([pyfile.url])[0]
if pyfile.status == 1:
self.offline()
elif pyfile.status == 6:
- self.tempOffline()
+ self.temp_offline()
def process(self, pyfile):
- self.checkInfo(pyfile)
+ self.check_info(pyfile)
id = re.match(self.__pattern__, pyfile.url).group('ID')
self.html = self.load("http://www.dailymotion.com/embed/video/" + id)
- streams = self.getStreams()
- quality = self.getQuality()
+ streams = self.get_streams()
+ quality = self.get_quality()
- self.download(self.getLink(streams, quality))
+ self.download(self.get_link(streams, quality))
diff --git a/module/plugins/hoster/DataHu.py b/module/plugins/hoster/DataHu.py
index 955c94437..c6d14c8bf 100644
--- a/module/plugins/hoster/DataHu.py
+++ b/module/plugins/hoster/DataHu.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DataHu(SimpleHoster):
__name__ = "DataHu"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?data\.hu/get/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,8 +28,8 @@ class DataHu(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = self.premium
+ self.resume_download = True
+ self.multi_dl = self.premium
getInfo = create_getInfo(DataHu)
diff --git a/module/plugins/hoster/DataportCz.py b/module/plugins/hoster/DataportCz.py
index 1b4041c69..d3b25d2ad 100644
--- a/module/plugins/hoster/DataportCz.py
+++ b/module/plugins/hoster/DataportCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DataportCz(SimpleHoster):
__name__ = "DataportCz"
__type__ = "hoster"
- __version__ = "0.41"
+ __version__ = "0.42"
__pattern__ = r'http://(?:www\.)?dataport\.cz/file/(.+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -24,12 +24,12 @@ class DataportCz(SimpleHoster):
FREE_SLOTS_PATTERN = ur'Počet volnÜch slotů: <span class="darkblue">(\d+)</span><br />'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
captchas = {"1": "jkeG", "2": "hMJQ", "3": "vmEK", "4": "ePQM", "5": "blBd"}
for _i in xrange(60):
- action, inputs = self.parseHtmlForm('free_download_form')
- self.logDebug(action, inputs)
+ action, inputs = self.parse_html_form('free_download_form')
+ self.log_debug(action, inputs)
if not action or not inputs:
self.error(_("free_download_form"))
@@ -40,13 +40,13 @@ class DataportCz(SimpleHoster):
self.download("http://www.dataport.cz%s" % action, post=inputs)
- check = self.checkDownload({"captcha": 'alert("\u0160patn\u011b opsan\u00fd k\u00f3d z obr\u00e1zu");',
+ check = self.check_download({"captcha": 'alert("\u0160patn\u011b opsan\u00fd k\u00f3d z obr\u00e1zu");',
"slot" : 'alert("Je n\u00e1m l\u00edto, ale moment\u00e1ln\u011b nejsou'})
if check == "captcha":
self.error(_("invalid captcha"))
elif check == "slot":
- self.logDebug("No free slots - wait 60s and retry")
+ self.log_debug("No free slots - wait 60s and retry")
self.wait(60, False)
self.html = self.load(pyfile.url)
continue
diff --git a/module/plugins/hoster/DateiTo.py b/module/plugins/hoster/DateiTo.py
index 92a96b9ec..fe1a65e12 100644
--- a/module/plugins/hoster/DateiTo.py
+++ b/module/plugins/hoster/DateiTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DateiTo(SimpleHoster):
__name__ = "DateiTo"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,19 +29,19 @@ class DateiTo(SimpleHoster):
DATA_PATTERN = r'url: "(.*?)", data: "(.*?)",'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
url = 'http://datei.to/ajax/download.php'
data = {'P': 'I', 'ID': self.info['pattern']['ID']}
recaptcha = ReCaptcha(self)
for _i in xrange(10):
- self.logDebug("URL", url, "POST", data)
+ self.log_debug("URL", url, "POST", data)
self.html = self.load(url, post=data)
- self.checkErrors()
+ self.check_errors()
if url.endswith('download.php') and 'P' in data:
if data['P'] == 'I':
- self.doWait()
+ self.do_wait()
elif data['P'] == 'IV':
break
@@ -60,7 +60,7 @@ class DateiTo(SimpleHoster):
self.link = self.html
- def doWait(self):
+ def do_wait(self):
m = re.search(self.WAIT_PATTERN, self.html)
wait_time = int(m.group(1)) if m else 30
diff --git a/module/plugins/hoster/DdlstorageCom.py b/module/plugins/hoster/DdlstorageCom.py
index 976d9ccf9..e4abeac2a 100644
--- a/module/plugins/hoster/DdlstorageCom.py
+++ b/module/plugins/hoster/DdlstorageCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class DdlstorageCom(DeadHoster):
__name__ = "DdlstorageCom"
__type__ = "hoster"
- __version__ = "1.02"
+ __version__ = "1.03"
__pattern__ = r'https?://(?:www\.)?ddlstorage\.com/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/DebridItaliaCom.py b/module/plugins/hoster/DebridItaliaCom.py
index 9e3d87934..d67836d20 100644
--- a/module/plugins/hoster/DebridItaliaCom.py
+++ b/module/plugins/hoster/DebridItaliaCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class DebridItaliaCom(MultiHoster):
__name__ = "DebridItaliaCom"
__type__ = "hoster"
- __version__ = "0.18"
+ __version__ = "0.19"
__pattern__ = r'https?://(?:www\.|s\d+\.)?debriditalia\.com/dl/\d+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -23,9 +23,9 @@ class DebridItaliaCom(MultiHoster):
URL_REPLACEMENTS = [("https://", "http://")]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.html = self.load("http://www.debriditalia.com/api.php",
- get={'generate': "on", 'link': pyfile.url, 'p': self.getPassword()})
+ get={'generate': "on", 'link': pyfile.url, 'p': self.get_password()})
if "ERROR:" not in self.html:
self.link = self.html.strip()
@@ -35,7 +35,7 @@ class DebridItaliaCom(MultiHoster):
self.html = self.load("http://debriditalia.com/linkgen2.php",
post={'xjxfun' : "convertiLink",
'xjxargs[]': "S<![CDATA[%s]]>" % pyfile.url,
- 'xjxargs[]': "S%s" % self.getPassword()})
+ 'xjxargs[]': "S%s" % self.get_password()})
try:
self.link = re.search(r'<a href="(.+?)"', self.html).group(1)
except AttributeError:
diff --git a/module/plugins/hoster/DepositfilesCom.py b/module/plugins/hoster/DepositfilesCom.py
index 18f23f552..4e4265391 100644
--- a/module/plugins/hoster/DepositfilesCom.py
+++ b/module/plugins/hoster/DepositfilesCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DepositfilesCom(SimpleHoster):
__name__ = "DepositfilesCom"
__type__ = "hoster"
- __version__ = "0.56"
+ __version__ = "0.57"
__pattern__ = r'https?://(?:www\.)?(depositfiles\.com|dfiles\.(eu|ru))(/\w{1,3})?/files/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -40,18 +40,18 @@ class DepositfilesCom(SimpleHoster):
LINK_MIRROR_PATTERN = r'class="repeat_mirror"><a href="(.+?)"'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load(pyfile.url, post={'gateway_result': "1"})
- self.checkErrors()
+ self.check_errors()
m = re.search(r"var fid = '(\w+)';", self.html)
if m is None:
self.retry(wait_time=5)
params = {'fid': m.group(1)}
- self.logDebug("FID: %s" % params['fid'])
+ self.log_debug("FID: %s" % params['fid'])
- self.checkErrors()
+ self.check_errors()
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
@@ -69,9 +69,9 @@ class DepositfilesCom(SimpleHoster):
self.link = urllib.unquote(m.group(1))
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
if '<span class="html_download_api-gold_traffic_limit">' in self.html:
- self.logWarning(_("Download limit reached"))
+ self.log_warning(_("Download limit reached"))
self.retry(25, 60 * 60, "Download limit reached")
elif 'onClick="show_gold_offer' in self.html:
diff --git a/module/plugins/hoster/DevhostSt.py b/module/plugins/hoster/DevhostSt.py
index a8a031aaf..27bf100de 100644
--- a/module/plugins/hoster/DevhostSt.py
+++ b/module/plugins/hoster/DevhostSt.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DevhostSt(SimpleHoster):
__name__ = "DevhostSt"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?d-h\.st/(?!users/)\w{3}'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -30,8 +30,8 @@ class DevhostSt(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
getInfo = create_getInfo(DevhostSt)
diff --git a/module/plugins/hoster/DlFreeFr.py b/module/plugins/hoster/DlFreeFr.py
index e3be19782..f8c684ed4 100644
--- a/module/plugins/hoster/DlFreeFr.py
+++ b/module/plugins/hoster/DlFreeFr.py
@@ -35,7 +35,7 @@ class CustomBrowser(Browser):
class DlFreeFr(SimpleHoster):
__name__ = "DlFreeFr"
__type__ = "hoster"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'http://(?:www\.)?dl\.free\.fr/(\w+|getfile\.pl\?file=/\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -53,10 +53,10 @@ class DlFreeFr(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.limitDL = 5
- self.chunkLimit = 1
+ self.resume_download = True
+ self.multi_dl = True
+ self.limit_dl = 5
+ self.chunk_limit = 1
def init(self):
@@ -78,7 +78,7 @@ class DlFreeFr(SimpleHoster):
if content_type and content_type.startswith("text/html"):
#: Undirect acces to requested file, with a web page providing it (captcha)
self.html = self.load(valid_url)
- self.handleFree(pyfile)
+ self.handle_free(pyfile)
else:
#: Direct access to requested file for users using free.fr as Internet Service Provider.
self.link = valid_url
@@ -92,10 +92,10 @@ class DlFreeFr(SimpleHoster):
self.fail(_("Invalid return code: ") + str(headers.get('code')))
- def handleFree(self, pyfile):
- action, inputs = self.parseHtmlForm('action="getfile.pl"')
+ def handle_free(self, pyfile):
+ action, inputs = self.parse_html_form('action="getfile.pl"')
self.load("http://dl.free.fr/getfile.pl", post=inputs)
- headers = self.getLastHeaders()
+ headers = self.get_last_headers()
if headers.get("code") == 302 and "set-cookie" in headers and "location" in headers:
m = re.search("(.*?)=(.*?); path=(.*?); domain=(.*)", headers.get("set-cookie"))
cj = CookieJar(__name__)
@@ -110,8 +110,8 @@ class DlFreeFr(SimpleHoster):
self.fail(_("Invalid response"))
- def getLastHeaders(self):
- #parse header
+ def get_last_headers(self):
+ # parse header
header = {"code": self.req.code}
for line in self.req.http.header.splitlines():
line = line.strip()
diff --git a/module/plugins/hoster/DodanePl.py b/module/plugins/hoster/DodanePl.py
index 46f748cc4..c0aeaafbe 100644
--- a/module/plugins/hoster/DodanePl.py
+++ b/module/plugins/hoster/DodanePl.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class DodanePl(DeadHoster):
__name__ = "DodanePl"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?dodane\.pl/file/\d+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/DropboxCom.py b/module/plugins/hoster/DropboxCom.py
index eec968f5a..9bc022515 100644
--- a/module/plugins/hoster/DropboxCom.py
+++ b/module/plugins/hoster/DropboxCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DropboxCom(SimpleHoster):
__name__ = "DropboxCom"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'https?://(?:www\.)?dropbox\.com/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -27,12 +27,12 @@ class DropboxCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
- self.resumeDownload = True
+ self.multi_dl = True
+ self.chunk_limit = 1
+ self.resume_download = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.download(pyfile.url, get={'dl': "1"})
diff --git a/module/plugins/hoster/DuploadOrg.py b/module/plugins/hoster/DuploadOrg.py
index 076171544..57535c46a 100644
--- a/module/plugins/hoster/DuploadOrg.py
+++ b/module/plugins/hoster/DuploadOrg.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class DuploadOrg(DeadHoster):
__name__ = "DuploadOrg"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?dupload\.org/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/EasybytezCom.py b/module/plugins/hoster/EasybytezCom.py
index 693910c1b..5de267cde 100644
--- a/module/plugins/hoster/EasybytezCom.py
+++ b/module/plugins/hoster/EasybytezCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class EasybytezCom(XFSHoster):
__name__ = "EasybytezCom"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'http://(?:www\.)?easybytez\.com/\w{12}'
diff --git a/module/plugins/hoster/EdiskCz.py b/module/plugins/hoster/EdiskCz.py
index 96be21860..100c6d269 100644
--- a/module/plugins/hoster/EdiskCz.py
+++ b/module/plugins/hoster/EdiskCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class EdiskCz(SimpleHoster):
__name__ = "EdiskCz"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'http://(?:www\.)?edisk\.(cz|sk|eu)/(stahni|sk/stahni|en/download)/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -26,13 +26,13 @@ class EdiskCz(SimpleHoster):
def setup(self):
- self.multiDL = False
+ self.multi_dl = False
def process(self, pyfile):
url = re.sub("/(stahni|sk/stahni)/", "/en/download/", pyfile.url)
- self.logDebug("URL:" + url)
+ self.log_debug("URL:" + url)
m = re.search(self.ACTION_PATTERN, url)
if m is None:
diff --git a/module/plugins/hoster/EgoFilesCom.py b/module/plugins/hoster/EgoFilesCom.py
index 78108962f..3f081da41 100644
--- a/module/plugins/hoster/EgoFilesCom.py
+++ b/module/plugins/hoster/EgoFilesCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class EgoFilesCom(DeadHoster):
__name__ = "EgoFilesCom"
__type__ = "hoster"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'https?://(?:www\.)?egofiles\.com/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/EnteruploadCom.py b/module/plugins/hoster/EnteruploadCom.py
index 8ef994e1e..46215f5a2 100644
--- a/module/plugins/hoster/EnteruploadCom.py
+++ b/module/plugins/hoster/EnteruploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class EnteruploadCom(DeadHoster):
__name__ = "EnteruploadCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?enterupload\.com/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/EpicShareNet.py b/module/plugins/hoster/EpicShareNet.py
index 7e3c8ba0e..91858ef3f 100644
--- a/module/plugins/hoster/EpicShareNet.py
+++ b/module/plugins/hoster/EpicShareNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class EpicShareNet(DeadHoster):
__name__ = "EpicShareNet"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?epicshare\.net/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/EuroshareEu.py b/module/plugins/hoster/EuroshareEu.py
index deb138ec7..4401391a9 100644
--- a/module/plugins/hoster/EuroshareEu.py
+++ b/module/plugins/hoster/EuroshareEu.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class EuroshareEu(SimpleHoster):
__name__ = "EuroshareEu"
__type__ = "hoster"
- __version__ = "0.29"
+ __version__ = "0.30"
__pattern__ = r'http://(?:www\.)?euroshare\.(eu|sk|cz|hu|pl)/file/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,25 +29,25 @@ class EuroshareEu(SimpleHoster):
URL_REPLACEMENTS = [(r"(http://[^/]*\.)(sk|cz|hu|pl)/", r"\1eu/")]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
if self.ERROR_PATTERN in self.html:
self.account.relogin(self.user)
self.retry(reason=_("User not logged in"))
self.link = pyfile.url.rstrip('/') + "/download/"
- check = self.checkDownload({"login": re.compile(self.ERROR_PATTERN),
+ check = self.check_download({"login": re.compile(self.ERROR_PATTERN),
"json" : re.compile(r'\{"status":"error".*?"message":"(.*?)"')})
- if check == "login" or (check == "json" and self.lastCheck.group(1) == "Access token expired"):
+ if check == "login" or (check == "json" and self.last_check.group(1) == "Access token expired"):
self.account.relogin(self.user)
self.retry(reason=_("Access token expired"))
elif check == "json":
- self.fail(self.lastCheck.group(1))
+ self.fail(self.last_check.group(1))
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if re.search(self.DL_LIMIT_PATTERN, self.html):
self.wait(5 * 60, 12, _("Download limit reached"))
diff --git a/module/plugins/hoster/ExashareCom.py b/module/plugins/hoster/ExashareCom.py
index d70ca6d3a..6c117f596 100644
--- a/module/plugins/hoster/ExashareCom.py
+++ b/module/plugins/hoster/ExashareCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class ExashareCom(XFSHoster):
__name__ = "ExashareCom"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?exashare\.com/\w{12}'
@@ -21,12 +21,12 @@ class ExashareCom(XFSHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
- self.resumeDownload = self.premium
+ self.multi_dl = True
+ self.chunk_limit = 1
+ self.resume_download = self.premium
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.error(_("Free download link not found"))
diff --git a/module/plugins/hoster/ExtabitCom.py b/module/plugins/hoster/ExtabitCom.py
index ead2e1e53..c2ae32099 100644
--- a/module/plugins/hoster/ExtabitCom.py
+++ b/module/plugins/hoster/ExtabitCom.py
@@ -5,13 +5,13 @@ import re
from module.common.json_layer import json_loads
from module.plugins.internal.ReCaptcha import ReCaptcha
-from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, secondsToMidnight
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, seconds_to_midnight
class ExtabitCom(SimpleHoster):
__name__ = "ExtabitCom"
__type__ = "hoster"
- __version__ = "0.66"
+ __version__ = "0.67"
__pattern__ = r'http://(?:www\.)?extabit\.com/(file|go|fid)/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,7 +29,7 @@ class ExtabitCom(SimpleHoster):
LINK_FREE_PATTERN = r'[\'"](http://guest\d+\.extabit\.com/\w+/.*?)[\'"]'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if r">Only premium users can download this file" in self.html:
self.fail(_("Only premium users can download this file"))
@@ -37,10 +37,10 @@ class ExtabitCom(SimpleHoster):
if m:
self.wait(int(m.group(1)) * 60, True)
elif "The daily downloads limit from your IP is exceeded" in self.html:
- self.logWarning(_("You have reached your daily downloads limit for today"))
- self.wait(secondsToMidnight(gmt=2), True)
+ self.log_warning(_("You have reached your daily downloads limit for today"))
+ self.wait(seconds_to_midnight(gmt=2), True)
- self.logDebug("URL: " + self.req.http.lastEffectiveURL)
+ self.log_debug("URL: " + self.req.http.lastEffectiveURL)
m = re.match(self.__pattern__, self.req.http.lastEffectiveURL)
fileID = m.group('ID') if m else self.info['pattern']['ID']
@@ -54,10 +54,10 @@ class ExtabitCom(SimpleHoster):
get_data['capture'], get_data['challenge'] = recaptcha.challenge(captcha_key)
res = json_loads(self.load("http://extabit.com/file/%s/" % fileID, get=get_data))
if "ok" in res:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
self.fail(_("Invalid captcha"))
else:
diff --git a/module/plugins/hoster/FastixRu.py b/module/plugins/hoster/FastixRu.py
index 468bcc8af..4e6b2e236 100644
--- a/module/plugins/hoster/FastixRu.py
+++ b/module/plugins/hoster/FastixRu.py
@@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class FastixRu(MultiHoster):
__name__ = "FastixRu"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?fastix\.(ru|it)/file/\w{24}'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -22,10 +22,10 @@ class FastixRu(MultiHoster):
def setup(self):
- self.chunkLimit = 3
+ self.chunk_limit = 3
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
api_key = self.account.getAccountData(self.user)
api_key = api_key['api']
@@ -34,7 +34,7 @@ class FastixRu(MultiHoster):
data = json_loads(self.html)
- self.logDebug("Json data", data)
+ self.log_debug("Json data", data)
if "error\":true" in self.html:
self.offline()
diff --git a/module/plugins/hoster/FastshareCz.py b/module/plugins/hoster/FastshareCz.py
index e56a05d37..1ed3213ff 100644
--- a/module/plugins/hoster/FastshareCz.py
+++ b/module/plugins/hoster/FastshareCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FastshareCz(SimpleHoster):
__name__ = "FastshareCz"
__type__ = "hoster"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'http://(?:www\.)?fastshare\.cz/\d+/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -33,20 +33,20 @@ class FastshareCz(SimpleHoster):
CREDIT_ERROR = " credit for "
- def checkErrors(self):
+ def check_errors(self):
if self.SLOT_ERROR in self.html:
errmsg = self.info['error'] = _("No free slots")
self.retry(12, 60, errmsg)
if self.CREDIT_ERROR in self.html:
errmsg = self.info['error'] = _("Not enough traffic left")
- self.logWarning(errmsg)
- self.resetAccount()
+ self.log_warning(errmsg)
+ self.reset_account()
self.info.pop('error', None)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.FREE_URL_PATTERN, self.html)
if m:
action, captcha_src = m.groups()
@@ -54,12 +54,12 @@ class FastshareCz(SimpleHoster):
self.error(_("FREE_URL_PATTERN not found"))
baseurl = "http://www.fastshare.cz"
- captcha = self.decryptCaptcha(urlparse.urljoin(baseurl, captcha_src))
+ captcha = self.decrypt_captcha(urlparse.urljoin(baseurl, captcha_src))
self.download(urlparse.urljoin(baseurl, action), post={'code': captcha, 'btn.x': 77, 'btn.y': 18})
- def checkFile(self):
- check = self.checkDownload({
+ def check_file(self):
+ check = self.check_download({
'paralell-dl' : re.compile(r"<title>FastShare.cz</title>|<script>alert\('Pres FREE muzete stahovat jen jeden soubor najednou.'\)"),
'wrong captcha': re.compile(r'Download for FREE'),
'credit' : re.compile(self.CREDIT_ERROR)
@@ -72,7 +72,7 @@ class FastshareCz(SimpleHoster):
self.retry(max_tries=5, reason=_("Wrong captcha"))
elif check == "credit":
- self.resetAccount()
+ self.reset_account()
return super(FastshareCz, self).checkFile()
diff --git a/module/plugins/hoster/FileApeCom.py b/module/plugins/hoster/FileApeCom.py
index 79157539b..3dbbfc4e4 100644
--- a/module/plugins/hoster/FileApeCom.py
+++ b/module/plugins/hoster/FileApeCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FileApeCom(DeadHoster):
__name__ = "FileApeCom"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?fileape\.com/(index\.php\?act=download\&id=|dl/)\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FileSharkPl.py b/module/plugins/hoster/FileSharkPl.py
index d01a34bad..595d0c7ed 100644
--- a/module/plugins/hoster/FileSharkPl.py
+++ b/module/plugins/hoster/FileSharkPl.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FileSharkPl(SimpleHoster):
__name__ = "FileSharkPl"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?fileshark\.pl/pobierz/\d+/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -37,16 +37,16 @@ class FileSharkPl(SimpleHoster):
def setup(self):
- self.resumeDownload = True
+ self.resume_download = True
if self.premium:
- self.multiDL = True
- self.limitDL = 20
+ self.multi_dl = True
+ self.limit_dl = 20
else:
- self.multiDL = False
+ self.multi_dl = False
- def checkErrors(self):
+ def check_errors(self):
#: check if file is now available for download (-> file name can be found in html body)
m = re.search(self.WAIT_PATTERN, self.html)
if m:
@@ -62,7 +62,7 @@ class FileSharkPl(SimpleHoster):
elif re.match(self.SLOT_ERROR_PATTERN, alert):
errmsg = self.info['error'] = _("No free download slots available")
- self.logWarning(errmsg)
+ self.log_warning(errmsg)
self.retry(10, 30 * 60, _("Still no free download slots available"))
else:
@@ -72,7 +72,7 @@ class FileSharkPl(SimpleHoster):
self.info.pop('error', None)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.error(_("Download url not found"))
@@ -84,10 +84,10 @@ class FileSharkPl(SimpleHoster):
m = re.search(self.WAIT_PATTERN, self.html)
if m:
seconds = int(m.group(1))
- self.logDebug("Wait %s seconds" % seconds)
+ self.log_debug("Wait %s seconds" % seconds)
self.wait(seconds)
- action, inputs = self.parseHtmlForm('action=""')
+ action, inputs = self.parse_html_form('action=""')
m = re.search(self.TOKEN_PATTERN, self.html)
if m is None:
@@ -102,7 +102,7 @@ class FileSharkPl(SimpleHoster):
tmp_load = self.load
self.load = self._decode64 #: work-around: injects decode64 inside decryptCaptcha
- inputs['form[captcha]'] = self.decryptCaptcha(m.group(1), imgtype='jpeg')
+ inputs['form[captcha]'] = self.decrypt_captcha(m.group(1), imgtype='jpeg')
inputs['form[start]'] = ""
self.load = tmp_load
diff --git a/module/plugins/hoster/FileStoreTo.py b/module/plugins/hoster/FileStoreTo.py
index 3262b73ad..e17e16f55 100644
--- a/module/plugins/hoster/FileStoreTo.py
+++ b/module/plugins/hoster/FileStoreTo.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FileStoreTo(SimpleHoster):
__name__ = "FileStoreTo"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?filestore\.to/\?d=(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -25,11 +25,11 @@ class FileStoreTo(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.wait(10)
self.link = self.load("http://filestore.to/ajax/download.php",
get={'D': re.search(r'"D=(\w+)', self.html).group(1)})
diff --git a/module/plugins/hoster/FilebeerInfo.py b/module/plugins/hoster/FilebeerInfo.py
index 244131dc7..adfb35454 100644
--- a/module/plugins/hoster/FilebeerInfo.py
+++ b/module/plugins/hoster/FilebeerInfo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FilebeerInfo(DeadHoster):
__name__ = "FilebeerInfo"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?filebeer\.info/(?!\d*~f)(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FileboomMe.py b/module/plugins/hoster/FileboomMe.py
index 9cdeebe3d..717ce549d 100644
--- a/module/plugins/hoster/FileboomMe.py
+++ b/module/plugins/hoster/FileboomMe.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FileboomMe(SimpleHoster):
__name__ = "FileboomMe"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://f(?:ile)?boom\.me/file/(?P<ID>\w+)'
@@ -30,12 +30,12 @@ class FileboomMe(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = False
- self.chunkLimit = 1
+ self.resume_download = True
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
post_url = urljoin(pyfile.url, "/file/" + self.info['pattern']['ID'])
m = re.search(r'data-slow-id="(\w+)"', self.html)
@@ -55,7 +55,7 @@ class FileboomMe(SimpleHoster):
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m:
- captcha = self.decryptCaptcha(urljoin(pyfile.url, m.group(1)))
+ captcha = self.decrypt_captcha(urljoin(pyfile.url, m.group(1)))
self.html = self.load(post_url,
post={'CaptchaForm[code]' : captcha,
@@ -64,10 +64,10 @@ class FileboomMe(SimpleHoster):
'uniqueId' : uniqueId})
if 'The verification code is incorrect' in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.checkErrors()
+ self.check_errors()
self.html = self.load(post_url,
post={'free' : 1,
@@ -78,7 +78,7 @@ class FileboomMe(SimpleHoster):
self.link = urljoin(pyfile.url, m.group(0))
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
break
diff --git a/module/plugins/hoster/FilecloudIo.py b/module/plugins/hoster/FilecloudIo.py
index 346e9c444..d9013630d 100644
--- a/module/plugins/hoster/FilecloudIo.py
+++ b/module/plugins/hoster/FilecloudIo.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FilecloudIo(SimpleHoster):
__name__ = "FilecloudIo"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'http://(?:www\.)?(?:filecloud\.io|ifile\.it|mihd\.net)/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -39,12 +39,12 @@ class FilecloudIo(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.chunkLimit = 1
+ self.resume_download = True
+ self.multi_dl = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
data = {"ukey": self.info['pattern']['ID']}
m = re.search(self.AB1_PATTERN, self.html)
@@ -68,13 +68,13 @@ class FilecloudIo(SimpleHoster):
json_url = "http://filecloud.io/download-request.json"
res = self.load(json_url, post=data)
- self.logDebug(res)
+ self.log_debug(res)
res = json_loads(res)
if "error" in res and res['error']:
self.fail(res)
- self.logDebug(res)
+ self.log_debug(res)
if res['captcha']:
data['ctype'] = "recaptcha"
@@ -83,13 +83,13 @@ class FilecloudIo(SimpleHoster):
json_url = "http://filecloud.io/download-request.json"
res = self.load(json_url, post=data)
- self.logDebug(res)
+ self.log_debug(res)
res = json_loads(res)
if "retry" in res and res['retry']:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
self.fail(_("Incorrect captcha"))
@@ -109,13 +109,13 @@ class FilecloudIo(SimpleHoster):
self.fail(_("Unexpected server response"))
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
akey = self.account.getAccountData(self.user)['akey']
ukey = self.info['pattern']['ID']
- self.logDebug("Akey: %s | Ukey: %s" % (akey, ukey))
+ self.log_debug("Akey: %s | Ukey: %s" % (akey, ukey))
rep = self.load("http://api.filecloud.io/api-fetch_download_url.api",
post={"akey": akey, "ukey": ukey})
- self.logDebug("FetchDownloadUrl: " + rep)
+ self.log_debug("FetchDownloadUrl: " + rep)
rep = json_loads(rep)
if rep['status'] == 'ok':
self.link = rep['download_url']
diff --git a/module/plugins/hoster/FiledropperCom.py b/module/plugins/hoster/FiledropperCom.py
index 73bab2d64..b4b94ff87 100644
--- a/module/plugins/hoster/FiledropperCom.py
+++ b/module/plugins/hoster/FiledropperCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FiledropperCom(SimpleHoster):
__name__ = "FiledropperCom"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'https?://(?:www\.)?filedropper\.com/\w+'
@@ -24,16 +24,16 @@ class FiledropperCom(SimpleHoster):
def setup(self):
- self.multiDL = False
- self.chunkLimit = 1
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(r'img id="img" src="(.+?)"', self.html)
if m is None:
self.fail("Captcha not found")
- captcha_code = self.decryptCaptcha("http://www.filedropper.com/%s" % m.group(1))
+ captcha_code = self.decrypt_captcha("http://www.filedropper.com/%s" % m.group(1))
m = re.search(r'method="post" action="(.+?)"', self.html)
if m is None:
diff --git a/module/plugins/hoster/FilefactoryCom.py b/module/plugins/hoster/FilefactoryCom.py
index 3aa9dc2a9..8d7409824 100644
--- a/module/plugins/hoster/FilefactoryCom.py
+++ b/module/plugins/hoster/FilefactoryCom.py
@@ -7,7 +7,7 @@ from module.network.RequestFactory import getURL
from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo
-def getInfo(urls):
+def get_info(urls):
for url in urls:
h = getURL(url, just_header=True)
m = re.search(r'Location: (.+)\r\n', h)
@@ -20,7 +20,7 @@ def getInfo(urls):
class FilefactoryCom(SimpleHoster):
__name__ = "FilefactoryCom"
__type__ = "hoster"
- __version__ = "0.56"
+ __version__ = "0.57"
__pattern__ = r'https?://(?:www\.)?filefactory\.com/(file|trafficshare/\w+)/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -42,7 +42,7 @@ class FilefactoryCom(SimpleHoster):
COOKIES = [("filefactory.com", "locale", "en_US.utf8")]
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if "Currently only Premium Members can download files larger than" in self.html:
self.fail(_("File too large for free download"))
elif "All free download slots on this server are currently in use" in self.html:
@@ -59,12 +59,12 @@ class FilefactoryCom(SimpleHoster):
self.wait(m.group(1))
- def checkFile(self):
- check = self.checkDownload({'multiple': "You are currently downloading too many files at once.",
+ def check_file(self):
+ check = self.check_download({'multiple': "You are currently downloading too many files at once.",
'error' : '<div id="errorMessage">'})
if check == "multiple":
- self.logDebug("Parallel downloads detected; waiting 15 minutes")
+ self.log_debug("Parallel downloads detected; waiting 15 minutes")
self.retry(wait_time=15 * 60, reason=_("Parallel downloads"))
elif check == "error":
@@ -73,8 +73,8 @@ class FilefactoryCom(SimpleHoster):
return super(FilefactoryCom, self).checkFile()
- def handlePremium(self, pyfile):
- self.link = self.directLink(self.load(pyfile.url, just_header=True))
+ def handle_premium(self, pyfile):
+ self.link = self.direct_link(self.load(pyfile.url, just_header=True))
if not self.link:
html = self.load(pyfile.url)
diff --git a/module/plugins/hoster/FilejungleCom.py b/module/plugins/hoster/FilejungleCom.py
index 68f578096..e29ad1fbd 100644
--- a/module/plugins/hoster/FilejungleCom.py
+++ b/module/plugins/hoster/FilejungleCom.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Plugin import chunks
class FilejungleCom(FileserveCom):
__name__ = "FilejungleCom"
__type__ = "hoster"
- __version__ = "0.52"
+ __version__ = "0.53"
__pattern__ = r'http://(?:www\.)?filejungle\.com/f/(?P<ID>[^/]+)'
@@ -24,6 +24,6 @@ class FilejungleCom(FileserveCom):
LONG_WAIT_PATTERN = r'<h1>Please wait for (\d+) (\w+)\s*to download the next file\.</h1>'
-def getInfo(urls):
+def get_info(urls):
for chunk in chunks(urls, 100):
yield checkFile(FilejungleCom, chunk)
diff --git a/module/plugins/hoster/FileomCom.py b/module/plugins/hoster/FileomCom.py
index 306953b84..df7fc0aeb 100644
--- a/module/plugins/hoster/FileomCom.py
+++ b/module/plugins/hoster/FileomCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class FileomCom(XFSHoster):
__name__ = "FileomCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?fileom\.com/\w{12}'
@@ -25,9 +25,9 @@ class FileomCom(XFSHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
- self.resumeDownload = self.premium
+ self.multi_dl = True
+ self.chunk_limit = 1
+ self.resume_download = self.premium
getInfo = create_getInfo(FileomCom)
diff --git a/module/plugins/hoster/FilepostCom.py b/module/plugins/hoster/FilepostCom.py
index b2891a9e8..30ea6a869 100644
--- a/module/plugins/hoster/FilepostCom.py
+++ b/module/plugins/hoster/FilepostCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FilepostCom(SimpleHoster):
__name__ = "FilepostCom"
__type__ = "hoster"
- __version__ = "0.34"
+ __version__ = "0.35"
__pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp\.io)/(?P<ID>[^/]+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,7 +29,7 @@ class FilepostCom(SimpleHoster):
FLP_TOKEN_PATTERN = r'set_store_options\({token: \'(.+?)\''
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.FLP_TOKEN_PATTERN, self.html)
if m is None:
self.error(_("Token"))
@@ -43,7 +43,7 @@ class FilepostCom(SimpleHoster):
#: Get wait time
get_dict = {'SID': self.req.cj.getCookie('SID'), 'JsHttpRequest': str(int(time.time() * 10000)) + '-xml'}
post_dict = {'action': 'set_download', 'token': flp_token, 'code': self.info['pattern']['ID']}
- wait_time = int(self.getJsonResponse(get_dict, post_dict, 'wait_time'))
+ wait_time = int(self.get_json_response(get_dict, post_dict, 'wait_time'))
if wait_time > 0:
self.wait(wait_time)
@@ -52,15 +52,15 @@ class FilepostCom(SimpleHoster):
if 'var is_pass_exists = true;' in self.html:
#: Solve password
- password = self.getPassword()
+ password = self.get_password()
if password:
- self.logInfo(_("Password protected link, trying ") + file_pass)
+ self.log_info(_("Password protected link, trying ") + file_pass)
get_dict['JsHttpRequest'] = str(int(time.time() * 10000)) + '-xml'
post_dict['file_pass'] = file_pass
- self.link = self.getJsonResponse(get_dict, post_dict, 'link')
+ self.link = self.get_json_response(get_dict, post_dict, 'link')
if not self.link:
self.fail(_("Incorrect password"))
@@ -76,19 +76,19 @@ class FilepostCom(SimpleHoster):
if i:
post_dict['recaptcha_response_field'], post_dict['recaptcha_challenge_field'] = recaptcha.challenge(
captcha_key)
- self.logDebug(u"RECAPTCHA: %s : %s : %s" % (
+ self.log_debug(u"RECAPTCHA: %s : %s : %s" % (
captcha_key, post_dict['recaptcha_challenge_field'], post_dict['recaptcha_response_field']))
- self.link = self.getJsonResponse(get_dict, post_dict, 'link')
+ self.link = self.get_json_response(get_dict, post_dict, 'link')
else:
self.fail(_("Invalid captcha"))
- def getJsonResponse(self, get_dict, post_dict, field):
+ def get_json_response(self, get_dict, post_dict, field):
res = json_loads(self.load('https://filepost.com/files/get/', get=get_dict, post=post_dict))
- self.logDebug(res)
+ self.log_debug(res)
if not 'js' in res:
self.error(_("JSON %s 1") % field)
@@ -109,7 +109,7 @@ class FilepostCom(SimpleHoster):
return None
elif 'CAPTCHA' in res['js']['error']:
- self.logDebug("Error response is unknown, but mentions CAPTCHA")
+ self.log_debug("Error response is unknown, but mentions CAPTCHA")
return None
else:
diff --git a/module/plugins/hoster/FilepupNet.py b/module/plugins/hoster/FilepupNet.py
index 874fde3c8..439f9f8f8 100644
--- a/module/plugins/hoster/FilepupNet.py
+++ b/module/plugins/hoster/FilepupNet.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FilepupNet(SimpleHoster):
__name__ = "FilepupNet"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?filepup\.net/files/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,11 +32,11 @@ class FilepupNet(SimpleHoster):
def setup(self):
- self.multiDL = False
- self.chunkLimit = 1
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.error(_("Download link not found"))
diff --git a/module/plugins/hoster/FilerNet.py b/module/plugins/hoster/FilerNet.py
index ecf656926..1912f06dc 100644
--- a/module/plugins/hoster/FilerNet.py
+++ b/module/plugins/hoster/FilerNet.py
@@ -15,7 +15,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FilerNet(SimpleHoster):
__name__ = "FilerNet"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'https?://(?:www\.)?filer\.net/get/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -34,14 +34,14 @@ class FilerNet(SimpleHoster):
LINK_FREE_PATTERN = LINK_PREMIUM_PATTERN = r'href="([^"]+)">Get download</a>'
- def handleFree(self, pyfile):
- inputs = self.parseHtmlForm(input_names={'token': re.compile(r'.+')})[1]
+ def handle_free(self, pyfile):
+ inputs = self.parse_html_form(input_names={'token': re.compile(r'.+')})[1]
if 'token' not in inputs:
self.error(_("Unable to detect token"))
self.html = self.load(pyfile.url, post={'token': inputs['token']})
- inputs = self.parseHtmlForm(input_names={'hash': re.compile(r'.+')})[1]
+ inputs = self.parse_html_form(input_names={'hash': re.compile(r'.+')})[1]
if 'hash' not in inputs:
self.error(_("Unable to detect hash"))
@@ -58,9 +58,9 @@ class FilerNet(SimpleHoster):
if 'location' in self.req.http.header.lower():
self.link = re.search(r'location: (\S+)', self.req.http.header, re.I).group(1)
- self.correctCaptcha()
+ self.correct_captcha()
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
getInfo = create_getInfo(FilerNet)
diff --git a/module/plugins/hoster/FilerioCom.py b/module/plugins/hoster/FilerioCom.py
index c6ebbd444..948a46f31 100644
--- a/module/plugins/hoster/FilerioCom.py
+++ b/module/plugins/hoster/FilerioCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class FilerioCom(XFSHoster):
__name__ = "FilerioCom"
__type__ = "hoster"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'http://(?:www\.)?(filerio\.(in|com)|filekeen\.com)/\w{12}'
diff --git a/module/plugins/hoster/FilesMailRu.py b/module/plugins/hoster/FilesMailRu.py
index f93281702..71ef231b1 100644
--- a/module/plugins/hoster/FilesMailRu.py
+++ b/module/plugins/hoster/FilesMailRu.py
@@ -7,7 +7,7 @@ from module.plugins.internal.Hoster import Hoster
from module.plugins.internal.Plugin import chunks
-def getInfo(urls):
+def get_info(urls):
result = []
for chunk in chunks(urls, 10):
for url in chunk:
@@ -32,7 +32,7 @@ def getInfo(urls):
class FilesMailRu(Hoster):
__name__ = "FilesMailRu"
__type__ = "hoster"
- __version__ = "0.33"
+ __version__ = "0.34"
__pattern__ = r'http://(?:www\.)?files\.mail\.ru/.+'
@@ -42,57 +42,57 @@ class FilesMailRu(Hoster):
def setup(self):
- self.multiDL = bool(self.account)
+ self.multi_dl = bool(self.account)
def process(self, pyfile):
self.html = self.load(pyfile.url)
self.url_pattern = '<a href="(.+?)" onclick="return Act\(this\, \'dlink\'\, event\)">(.+?)</a>'
- #marks the file as "offline" when the pattern was found on the html-page'''
+ # marks the file as "offline" when the pattern was found on the html-page'''
if r'<div class="errorMessage mb10">' in self.html:
self.offline()
elif r'Page cannot be displayed' in self.html:
self.offline()
- #the filename that will be showed in the list (e.g. test.part1.rar)'''
- pyfile.name = self.getFileName()
+ # the filename that will be showed in the list (e.g. test.part1.rar)'''
+ pyfile.name = self.get_file_name()
- #prepare and download'''
+ # prepare and download'''
if not self.account:
self.prepare()
- self.download(self.getFileUrl())
- self.myPostProcess()
+ self.download(self.get_file_url())
+ self.my_post_process()
else:
- self.download(self.getFileUrl())
- self.myPostProcess()
+ self.download(self.get_file_url())
+ self.my_post_process()
def prepare(self):
"""
You have to wait some seconds. Otherwise you will get a 40Byte HTML Page instead of the file you expected
"""
- self.setWait(10)
+ self.set_wait(10)
self.wait()
return True
- def getFileUrl(self):
+ def get_file_url(self):
"""
Gives you the URL to the file. Extracted from the Files.mail.ru HTML-page stored in self.html
"""
return re.search(self.url_pattern, self.html).group(0).split('<a href="')[1].split('" onclick="return Act')[0]
- def getFileName(self):
+ def get_file_name(self):
"""
Gives you the Name for each file. Also extracted from the HTML-Page
"""
return re.search(self.url_pattern, self.html).group(0).split(', event)">')[1].split('</a>')[0]
- def myPostProcess(self):
+ def my_post_process(self):
#: searches the file for HTMl-Code. Sometimes the Redirect
#: doesn't work (maybe a curl Problem) and you get only a small
#: HTML file and the Download is marked as "finished"
@@ -103,9 +103,9 @@ class FilesMailRu(Hoster):
#: so i set it to check every download because sometimes there are downloads
#: that contain the HTML-Text and 60MB ZEROs after that in a xyzfile.part1.rar file
#: (Loading 100MB in to ram is not an option)
- check = self.checkDownload({"html": "<meta name="}, read_size=50000)
+ check = self.check_download({"html": "<meta name="}, read_size=50000)
if check == "html":
- self.logInfo(_(
+ self.log_info(_(
"There was HTML Code in the Downloaded File (%s)...redirect error? The Download will be restarted." %
self.pyfile.name))
self.retry()
diff --git a/module/plugins/hoster/FileserveCom.py b/module/plugins/hoster/FileserveCom.py
index 71cdb1fae..8ba963588 100644
--- a/module/plugins/hoster/FileserveCom.py
+++ b/module/plugins/hoster/FileserveCom.py
@@ -7,11 +7,11 @@ from module.network.RequestFactory import getURL
from module.plugins.internal.Hoster import Hoster
from module.plugins.internal.Plugin import chunks
from module.plugins.internal.ReCaptcha import ReCaptcha
-from module.plugins.internal.SimpleHoster import secondsToMidnight
+from module.plugins.internal.SimpleHoster import seconds_to_midnight
from module.utils import parseFileSize
-def checkFile(plugin, urls):
+def check_file(plugin, urls):
html = getURL(plugin.URLS[1], post={"urls": "\n".join(urls)})
file_info = []
@@ -33,7 +33,7 @@ def checkFile(plugin, urls):
class FileserveCom(Hoster):
__name__ = "FileserveCom"
__type__ = "hoster"
- __version__ = "0.56"
+ __version__ = "0.57"
__pattern__ = r'http://(?:www\.)?fileserve\.com/file/(?P<ID>[^/]+)'
@@ -60,39 +60,39 @@ class FileserveCom(Hoster):
def setup(self):
- self.resumeDownload = self.multiDL = self.premium
+ self.resume_download = self.multi_dl = self.premium
self.file_id = re.match(self.__pattern__, self.pyfile.url).group('ID')
self.url = "%s%s" % (self.URLS[0], self.file_id)
- self.logDebug("File ID: %s URL: %s" % (self.file_id, self.url))
+ self.log_debug("File ID: %s URL: %s" % (self.file_id, self.url))
def process(self, pyfile):
pyfile.name, pyfile.size, status, self.url = checkFile(self, [self.url])[0]
if status != 2:
self.offline()
- self.logDebug("File Name: %s Size: %d" % (pyfile.name, pyfile.size))
+ self.log_debug("File Name: %s Size: %d" % (pyfile.name, pyfile.size))
if self.premium:
- self.handlePremium()
+ self.handle_premium()
else:
- self.handleFree()
+ self.handle_free()
- def handleFree(self):
+ def handle_free(self):
self.html = self.load(self.url)
action = self.load(self.url, post={"checkDownload": "check"})
action = json_loads(action)
- self.logDebug(action)
+ self.log_debug(action)
if "fail" in action:
if action['fail'] == "timeLimit":
self.html = self.load(self.url, post={"checkDownload": "showError", "errorType": "timeLimit"})
- self.doLongWait(re.search(self.LONG_WAIT_PATTERN, self.html))
+ self.do_long_wait(re.search(self.LONG_WAIT_PATTERN, self.html))
elif action['fail'] == "parallelDownload":
- self.logWarning(_("Parallel download error, now waiting 60s"))
+ self.log_warning(_("Parallel download error, now waiting 60s"))
self.retry(wait_time=60, reason=_("parallelDownload"))
else:
@@ -100,47 +100,47 @@ class FileserveCom(Hoster):
elif "success" in action:
if action['success'] == "showCaptcha":
- self.doCaptcha()
- self.doTimmer()
+ self.do_captcha()
+ self.do_timmer()
elif action['success'] == "showTimmer":
- self.doTimmer()
+ self.do_timmer()
else:
self.error(_("Unknown server response"))
#: show download link
res = self.load(self.url, post={"downloadLink": "show"})
- self.logDebug("Show downloadLink response: %s" % res)
+ self.log_debug("Show downloadLink response: %s" % res)
if "fail" in res:
self.error(_("Couldn't retrieve download url"))
#: this may either download our file or forward us to an error page
self.download(self.url, post={"download": "normal"})
- self.logDebug(self.req.http.lastEffectiveURL)
+ self.log_debug(self.req.http.lastEffectiveURL)
- check = self.checkDownload({"expired": self.LINK_EXPIRED_PATTERN,
+ check = self.check_download({"expired": self.LINK_EXPIRED_PATTERN,
"wait" : re.compile(self.LONG_WAIT_PATTERN),
"limit" : self.DL_LIMIT_PATTERN})
if check == "expired":
- self.logDebug("Download link was expired")
+ self.log_debug("Download link was expired")
self.retry()
elif check == "wait":
- self.doLongWait(self.lastCheck)
+ self.do_long_wait(self.last_check)
elif check == "limit":
- self.logWarning(_("Download limited reached for today"))
- self.setWait(secondsToMidnight(gmt=2), True)
+ self.log_warning(_("Download limited reached for today"))
+ self.set_wait(seconds_to_midnight(gmt=2), True)
self.wait()
self.retry()
self.thread.m.reconnecting.wait(3) #: Ease issue with later downloads appearing to be in parallel
- def doTimmer(self):
+ def do_timmer(self):
res = self.load(self.url, post={"downloadLink": "wait"})
- self.logDebug("Wait response: %s" % res[:80])
+ self.log_debug("Wait response: %s" % res[:80])
if "fail" in res:
self.fail(_("Failed getting wait time"))
@@ -153,11 +153,11 @@ class FileserveCom(Hoster):
else:
wait_time = int(res) + 3
- self.setWait(wait_time)
+ self.set_wait(wait_time)
self.wait()
- def doCaptcha(self):
+ def do_captcha(self):
captcha_key = re.search(self.CAPTCHA_KEY_PATTERN, self.html).group(1)
recaptcha = ReCaptcha(self)
@@ -168,25 +168,25 @@ class FileserveCom(Hoster):
'recaptcha_response_field' : response,
'recaptcha_shortencode_field': self.file_id}))
if not res['success']:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
self.fail(_("Invalid captcha"))
- def doLongWait(self, m):
+ def do_long_wait(self, m):
wait_time = (int(m.group(1)) * {'seconds': 1, 'minutes': 60, 'hours': 3600}[m.group(2)]) if m else 12 * 60
- self.setWait(wait_time, True)
+ self.set_wait(wait_time, True)
self.wait()
self.retry()
- def handlePremium(self):
+ def handle_premium(self):
premium_url = None
if self.__name__ == "FileserveCom":
- #try api download
+ # try api download
res = self.load("http://app.fileserve.com/api/download/premium/",
post={"username": self.user,
"password": self.account.getAccountData(self.user)['password'],
@@ -196,21 +196,21 @@ class FileserveCom(Hoster):
if res['error_code'] == "302":
premium_url = res['next']
elif res['error_code'] in ["305", "500"]:
- self.tempOffline()
+ self.temp_offline()
elif res['error_code'] in ["403", "605"]:
- self.resetAccount()
+ self.reset_account()
elif res['error_code'] in ["606", "607", "608"]:
self.offline()
else:
- self.logError(res['error_code'], res['error_message'])
+ self.log_error(res['error_code'], res['error_message'])
self.download(premium_url or self.pyfile.url)
- if not premium_url and self.checkDownload({"login": re.compile(self.NOT_LOGGED_IN_PATTERN)}):
+ if not premium_url and self.check_download({"login": re.compile(self.NOT_LOGGED_IN_PATTERN)}):
self.account.relogin(self.user)
self.retry(reason=_("Not logged in"))
-def getInfo(urls):
+def get_info(urls):
for chunk in chunks(urls, 100):
yield checkFile(FileserveCom, chunk)
diff --git a/module/plugins/hoster/FileshareInUa.py b/module/plugins/hoster/FileshareInUa.py
index aa1785f19..baeffa735 100644
--- a/module/plugins/hoster/FileshareInUa.py
+++ b/module/plugins/hoster/FileshareInUa.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FileshareInUa(DeadHoster):
__name__ = "FileshareInUa"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?fileshare\.in\.ua/\w{7}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FilesonicCom.py b/module/plugins/hoster/FilesonicCom.py
index 5254a6f9b..2d825f77e 100644
--- a/module/plugins/hoster/FilesonicCom.py
+++ b/module/plugins/hoster/FilesonicCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FilesonicCom(DeadHoster):
__name__ = "FilesonicCom"
__type__ = "hoster"
- __version__ = "0.35"
+ __version__ = "0.36"
__pattern__ = r'http://(?:www\.)?filesonic\.com/file/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FileuploadNet.py b/module/plugins/hoster/FileuploadNet.py
index 0f2875318..acddc4c0a 100644
--- a/module/plugins/hoster/FileuploadNet.py
+++ b/module/plugins/hoster/FileuploadNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FileuploadNet(SimpleHoster):
__name__ = "FileuploadNet"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?(en\.)?file-upload\.net/download-\d+/.+'
@@ -25,8 +25,8 @@ class FileuploadNet(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
getInfo = create_getInfo(FileuploadNet)
diff --git a/module/plugins/hoster/FilezyNet.py b/module/plugins/hoster/FilezyNet.py
index 9f442c846..9df311ecf 100644
--- a/module/plugins/hoster/FilezyNet.py
+++ b/module/plugins/hoster/FilezyNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FilezyNet(DeadHoster):
__name__ = "FilezyNet"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?filezy\.net/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FiredriveCom.py b/module/plugins/hoster/FiredriveCom.py
index 8faee5b52..57752b341 100644
--- a/module/plugins/hoster/FiredriveCom.py
+++ b/module/plugins/hoster/FiredriveCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FiredriveCom(DeadHoster):
__name__ = "FiredriveCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/(mobile/)?(file|embed)/(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FlyFilesNet.py b/module/plugins/hoster/FlyFilesNet.py
index fb57baffd..63cabda66 100644
--- a/module/plugins/hoster/FlyFilesNet.py
+++ b/module/plugins/hoster/FlyFilesNet.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster
class FlyFilesNet(SimpleHoster):
__name__ = "FlyFilesNet"
__type__ = "hoster"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'http://(?:www\.)?flyfiles\.net/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -33,10 +33,10 @@ class FlyFilesNet(SimpleHoster):
#: get download URL
parsed_url = getURL(url, post={"getDownLink": session})
- self.logDebug("Parsed URL: %s" % parsed_url)
+ self.log_debug("Parsed URL: %s" % parsed_url)
if parsed_url == '#downlink|' or parsed_url == "#downlink|#":
- self.logWarning(_("Could not get the download URL. Please wait 10 minutes"))
+ self.log_warning(_("Could not get the download URL. Please wait 10 minutes"))
self.wait(10 * 60, True)
self.retry()
diff --git a/module/plugins/hoster/FourSharedCom.py b/module/plugins/hoster/FourSharedCom.py
index 79eb1fb83..52f311550 100644
--- a/module/plugins/hoster/FourSharedCom.py
+++ b/module/plugins/hoster/FourSharedCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class FourSharedCom(SimpleHoster):
__name__ = "FourSharedCom"
__type__ = "hoster"
- __version__ = "0.31"
+ __version__ = "0.32"
__pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -35,7 +35,7 @@ class FourSharedCom(SimpleHoster):
ID_PATTERN = r'name="d3fid" value="(.*?)"'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_BTN_PATTERN, self.html)
if m:
link = m.group(1)
@@ -53,7 +53,7 @@ class FourSharedCom(SimpleHoster):
try:
m = re.search(self.ID_PATTERN, self.html)
res = self.load('http://www.4shared.com/web/d2/getFreeDownloadLimitInfo?fileId=%s' % m.group(1))
- self.logDebug(res)
+ self.log_debug(res)
except Exception:
pass
diff --git a/module/plugins/hoster/FreakshareCom.py b/module/plugins/hoster/FreakshareCom.py
index f8e72e62f..86dc45585 100644
--- a/module/plugins/hoster/FreakshareCom.py
+++ b/module/plugins/hoster/FreakshareCom.py
@@ -4,13 +4,13 @@ import re
from module.plugins.internal.Hoster import Hoster
from module.plugins.internal.ReCaptcha import ReCaptcha
-from module.plugins.internal.SimpleHoster import secondsToMidnight
+from module.plugins.internal.SimpleHoster import seconds_to_midnight
class FreakshareCom(Hoster):
__name__ = "FreakshareCom"
__type__ = "hoster"
- __version__ = "0.42"
+ __version__ = "0.43"
__pattern__ = r'http://(?:www\.)?freakshare\.(net|com)/files/\S*?/'
@@ -23,7 +23,7 @@ class FreakshareCom(Hoster):
def setup(self):
- self.multiDL = False
+ self.multi_dl = False
self.req_opts = []
@@ -43,7 +43,7 @@ class FreakshareCom(Hoster):
self.download(pyfile.url, post=self.req_opts)
- check = self.checkDownload({"bad" : "bad try",
+ check = self.check_download({"bad" : "bad try",
"paralell" : "> Sorry, you cant download more then 1 files at time. <",
"empty" : "Warning: Unknown: Filename cannot be empty",
"wrong_captcha" : "Wrong Captcha!",
@@ -53,7 +53,7 @@ class FreakshareCom(Hoster):
self.fail(_("Bad Try"))
elif check == "paralell":
- self.setWait(300, True)
+ self.set_wait(300, True)
self.wait()
self.retry()
@@ -61,7 +61,7 @@ class FreakshareCom(Hoster):
self.fail(_("File not downloadable"))
elif check == "wrong_captcha":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry()
elif check == "downloadserver":
@@ -76,7 +76,7 @@ class FreakshareCom(Hoster):
if not self.file_exists():
self.offline()
- self.setWait(self.get_waiting_time())
+ self.set_wait(self.get_waiting_time())
pyfile.name = self.get_file_name()
pyfile.size = self.get_file_size()
@@ -97,10 +97,10 @@ class FreakshareCom(Hoster):
"""
if not self.html:
self.download_html()
- if not self.wantReconnect:
+ if not self.want_reconnect:
self.req_opts = self.get_download_options() #: get the Post options for the Request
- #file_url = self.pyfile.url
- #return file_url
+ # file_url = self.pyfile.url
+ # return file_url
else:
self.offline()
@@ -109,7 +109,7 @@ class FreakshareCom(Hoster):
if not self.html:
self.download_html()
- if not self.wantReconnect:
+ if not self.want_reconnect:
m = re.search(r"<h1\sclass=\"box_heading\"\sstyle=\"text-align:center;\">([^ ]+)", self.html)
if m:
file_name = m.group(1)
@@ -126,7 +126,7 @@ class FreakshareCom(Hoster):
if not self.html:
self.download_html()
- if not self.wantReconnect:
+ if not self.want_reconnect:
m = re.search(r"<h1\sclass=\"box_heading\"\sstyle=\"text-align:center;\">[^ ]+ - ([^ ]+) (\w\w)yte", self.html)
if m:
units = float(m.group(1).replace(",", ""))
@@ -141,8 +141,8 @@ class FreakshareCom(Hoster):
self.download_html()
if "Your Traffic is used up for today" in self.html:
- self.wantReconnect = True
- return secondsToMidnight(gmt=2)
+ self.want_reconnect = True
+ return seconds_to_midnight(gmt=2)
timestring = re.search('\s*var\s(?:downloadWait|time)\s=\s(\d*)[\d.]*;', self.html)
if timestring:
diff --git a/module/plugins/hoster/FreeWayMe.py b/module/plugins/hoster/FreeWayMe.py
index 59b3d93bb..3750e6069 100644
--- a/module/plugins/hoster/FreeWayMe.py
+++ b/module/plugins/hoster/FreeWayMe.py
@@ -6,7 +6,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class FreeWayMe(MultiHoster):
__name__ = "FreeWayMe"
__type__ = "hoster"
- __version__ = "0.18"
+ __version__ = "0.19"
__pattern__ = r'https?://(?:www\.)?free-way\.(bz|me)/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -18,12 +18,12 @@ class FreeWayMe(MultiHoster):
def setup(self):
- self.resumeDownload = False
- self.multiDL = self.premium
- self.chunkLimit = 1
+ self.resume_download = False
+ self.multi_dl = self.premium
+ self.chunk_limit = 1
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
user, data = self.account.selectAccount()
for _i in xrange(5):
@@ -40,14 +40,14 @@ class FreeWayMe(MultiHoster):
headers = self.load(header['location'], just_header=True)
if headers['code'] == 500:
#: error on 2nd stage
- self.logError(_("Error [stage2]"))
+ self.log_error(_("Error [stage2]"))
else:
#: seems to work..
self.download(header['location'])
break
else:
#: error page first stage
- self.logError(_("Error [stage1]"))
+ self.log_error(_("Error [stage1]"))
#@TODO: handle errors
diff --git a/module/plugins/hoster/FreevideoCz.py b/module/plugins/hoster/FreevideoCz.py
index 49f02a28b..32403caf5 100644
--- a/module/plugins/hoster/FreevideoCz.py
+++ b/module/plugins/hoster/FreevideoCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class FreevideoCz(DeadHoster):
__name__ = "FreevideoCz"
__type__ = "hoster"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'http://(?:www\.)?freevideo\.cz/vase-videa/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/FshareVn.py b/module/plugins/hoster/FshareVn.py
index 717265014..7e1d573d8 100644
--- a/module/plugins/hoster/FshareVn.py
+++ b/module/plugins/hoster/FshareVn.py
@@ -8,7 +8,7 @@ from module.network.RequestFactory import getURL
from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo
-def getInfo(urls):
+def get_info(urls):
for url in urls:
html = getURL("http://www.fshare.vn/check_link.php",
post={'action': "check_link", 'arrlinks': url})
@@ -16,14 +16,14 @@ def getInfo(urls):
yield parseFileInfo(FshareVn, url, html)
-def doubleDecode(m):
+def double_decode(m):
return m.group(1).decode('raw_unicode_escape')
class FshareVn(SimpleHoster):
__name__ = "FshareVn"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?fshare\.vn/file/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -47,22 +47,22 @@ class FshareVn(SimpleHoster):
post={'action': "check_link", 'arrlinks': pyfile.url})
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load(pyfile.url)
- self.checkErrors()
+ self.check_errors()
- action, inputs = self.parseHtmlForm('frm_download')
+ action, inputs = self.parse_html_form('frm_download')
url = urlparse.urljoin(pyfile.url, action)
if not inputs:
self.error(_("No FORM"))
elif 'link_file_pwd_dl' in inputs:
- password = self.getPassword()
+ password = self.get_password()
if password:
- self.logInfo(_("Password protected link, trying ") + password)
+ self.log_info(_("Password protected link, trying ") + password)
inputs['link_file_pwd_dl'] = password
self.html = self.load(url, post=inputs)
@@ -74,10 +74,10 @@ class FshareVn(SimpleHoster):
else:
self.html = self.load(url, post=inputs)
- self.checkErrors()
+ self.check_errors()
m = re.search(r'var count = (\d+)', self.html)
- self.setWait(int(m.group(1)) if m else 30)
+ self.set_wait(int(m.group(1)) if m else 30)
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
@@ -87,19 +87,19 @@ class FshareVn(SimpleHoster):
self.wait()
- def checkErrors(self):
+ def check_errors(self):
if '/error.php?' in self.req.lastEffectiveURL or u"Liên kết bạn chọn khÃŽng tồn" in self.html:
self.offline()
m = re.search(self.WAIT_PATTERN, self.html)
if m:
- self.logInfo(_("Wait until %s ICT") % m.group(1))
+ self.log_info(_("Wait until %s ICT") % m.group(1))
wait_until = time.mktime.time(time.strptime.time(m.group(1), "%d/%m/%Y %H:%M"))
self.wait(wait_until - time.mktime.time(time.gmtime.time()) - 7 * 60 * 60, True)
self.retry()
elif '<ul class="message-error">' in self.html:
msg = "Unknown error occured or wait time not parsed"
- self.logError(msg)
+ self.log_error(msg)
self.retry(30, 2 * 60, msg)
self.info.pop('error', None)
diff --git a/module/plugins/hoster/Ftp.py b/module/plugins/hoster/Ftp.py
index f4d6380ee..8c269b255 100644
--- a/module/plugins/hoster/Ftp.py
+++ b/module/plugins/hoster/Ftp.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Hoster import Hoster
class Ftp(Hoster):
__name__ = "Ftp"
__type__ = "hoster"
- __version__ = "0.53"
+ __version__ = "0.54"
__pattern__ = r'(?:ftps?|sftp)://([\w.-]+(:[\w.-]+)?@)?[\w.-]+(:\d+)?/.+'
@@ -23,8 +23,8 @@ class Ftp(Hoster):
def setup(self):
- self.chunkLimit = -1
- self.resumeDownload = True
+ self.chunk_limit = -1
+ self.resume_download = True
def process(self, pyfile):
@@ -41,10 +41,10 @@ class Ftp(Hoster):
servers = [x['login'] for x in self.account.getAllAccounts()] if self.account else []
if netloc in servers:
- self.logDebug("Logging on to %s" % netloc)
+ self.log_debug("Logging on to %s" % netloc)
self.req.addAuth(self.account.getAccountInfo(netloc)['password'])
else:
- pwd = self.getPassword()
+ pwd = self.get_password()
if ':' in pwd:
self.req.addAuth(pwd)
@@ -56,14 +56,14 @@ class Ftp(Hoster):
self.fail(_("Error %d: %s") % e.args)
self.req.http.c.setopt(pycurl.NOBODY, 0)
- self.logDebug(self.req.http.header)
+ self.log_debug(self.req.http.header)
m = re.search(r"Content-Length:\s*(\d+)", res)
if m:
pyfile.size = int(m.group(1))
self.download(pyfile.url)
else:
- #Naive ftp directory listing
+ # Naive ftp directory listing
if re.search(r'^25\d.*?"', self.req.http.header, re.M):
pyfile.url = pyfile.url.rstrip('/')
pkgname = "/".join([pyfile.package().name, urlparse.urlparse(pyfile.url).path.rpartition('/')[2]])
@@ -71,7 +71,7 @@ class Ftp(Hoster):
self.req.http.c.setopt(48, 1) #: CURLOPT_DIRLISTONLY
res = self.load(pyfile.url, decode=False)
links = [pyfile.url + x for x in res.splitlines()]
- self.logDebug("LINKS", links)
+ self.log_debug("LINKS", links)
self.core.api.addPackage(pkgname, links)
else:
self.fail(_("Unexpected server response"))
diff --git a/module/plugins/hoster/GamefrontCom.py b/module/plugins/hoster/GamefrontCom.py
index f987a371a..915ebca7c 100644
--- a/module/plugins/hoster/GamefrontCom.py
+++ b/module/plugins/hoster/GamefrontCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class GamefrontCom(SimpleHoster):
__name__ = "GamefrontCom"
__type__ = "hoster"
- __version__ = "0.08"
+ __version__ = "0.09"
__pattern__ = r'http://(?:www\.)?gamefront\.com/files/(?P<ID>\d+)'
@@ -23,14 +23,14 @@ class GamefrontCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load("http://www.gamefront.com/files/service/thankyou",
get={'id': self.info['pattern']['ID']})
- return super(GamefrontCom, self).handleFree(pyfile)
+ return super(GamefrontCom, self).handle_free(pyfile)
getInfo = create_getInfo(GamefrontCom)
diff --git a/module/plugins/hoster/GigapetaCom.py b/module/plugins/hoster/GigapetaCom.py
index c2feeb6f8..bfa30358e 100644
--- a/module/plugins/hoster/GigapetaCom.py
+++ b/module/plugins/hoster/GigapetaCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class GigapetaCom(SimpleHoster):
__name__ = "GigapetaCom"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?gigapeta\.com/dl/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,16 +29,16 @@ class GigapetaCom(SimpleHoster):
COOKIES = [("gigapeta.com", "lang", "us")]
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
captcha_key = str(random.randint(1, 100000000))
captcha_url = "http://gigapeta.com/img/captcha.gif?x=%s" % captcha_key
self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)
for _i in xrange(5):
- self.checkErrors()
+ self.check_errors()
- captcha = self.decryptCaptcha(captcha_url)
+ captcha = self.decrypt_captcha(captcha_url)
self.html = self.load(pyfile.url, post={
"captcha_key": captcha_key,
"captcha": captcha,
@@ -49,7 +49,7 @@ class GigapetaCom(SimpleHoster):
self.link = m.group(1).rstrip() #@TODO: Remove .rstrip() in 0.4.10
break
elif "Entered figures don&#96;t coincide with the picture" in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
self.fail(_("No valid captcha code entered"))
diff --git a/module/plugins/hoster/GooIm.py b/module/plugins/hoster/GooIm.py
index 4b27e6cc8..c40a41029 100644
--- a/module/plugins/hoster/GooIm.py
+++ b/module/plugins/hoster/GooIm.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class GooIm(SimpleHoster):
__name__ = "GooIm"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'https?://(?:www\.)?goo\.im/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -26,11 +26,11 @@ class GooIm(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.wait(10)
self.link = pyfile.url
diff --git a/module/plugins/hoster/GoogledriveCom.py b/module/plugins/hoster/GoogledriveCom.py
index d658a8ba1..85dc6989c 100644
--- a/module/plugins/hoster/GoogledriveCom.py
+++ b/module/plugins/hoster/GoogledriveCom.py
@@ -13,7 +13,7 @@ from module.utils import html_unescape
class GoogledriveCom(SimpleHoster):
__name__ = "GoogledriveCom"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'https?://(?:www\.)?(drive|docs)\.google\.com/(file/d/\w+|uc\?.*id=)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,12 +32,12 @@ class GoogledriveCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.resumeDownload = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.resume_download = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
for _i in xrange(2):
m = re.search(self.LINK_FREE_PATTERN, self.html)
@@ -49,7 +49,7 @@ class GoogledriveCom(SimpleHoster):
if not urlparse.urlparse(link).scheme:
link = urlparse.urljoin("https://docs.google.com/", link)
- direct_link = self.directLink(link, False)
+ direct_link = self.direct_link(link, False)
if not direct_link:
self.html = self.load(link)
else:
diff --git a/module/plugins/hoster/HellshareCz.py b/module/plugins/hoster/HellshareCz.py
index ac0043b37..9e713b30e 100644
--- a/module/plugins/hoster/HellshareCz.py
+++ b/module/plugins/hoster/HellshareCz.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class HellshareCz(SimpleHoster):
__name__ = "HellshareCz"
__type__ = "hoster"
- __version__ = "0.85"
+ __version__ = "0.86"
__pattern__ = r'http://(?:www\.)?hellshare\.(?:cz|com|sk|hu|pl)/[^?]*/\d+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -29,8 +29,8 @@ class HellshareCz(SimpleHoster):
def setup(self):
- self.resumeDownload = self.multiDL = bool(self.account)
- self.chunkLimit = 1
+ self.resume_download = self.multi_dl = bool(self.account)
+ self.chunk_limit = 1
getInfo = create_getInfo(HellshareCz)
diff --git a/module/plugins/hoster/HellspyCz.py b/module/plugins/hoster/HellspyCz.py
index 9b10760bd..a717a0b36 100644
--- a/module/plugins/hoster/HellspyCz.py
+++ b/module/plugins/hoster/HellspyCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class HellspyCz(DeadHoster):
__name__ = "HellspyCz"
__type__ = "hoster"
- __version__ = "0.28"
+ __version__ = "0.29"
__pattern__ = r'http://(?:www\.)?(?:hellspy\.(?:cz|com|sk|hu|pl)|sciagaj\.pl)(/\S+/\d+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/HighWayMe.py b/module/plugins/hoster/HighWayMe.py
index a33a1137b..e51970c71 100644
--- a/module/plugins/hoster/HighWayMe.py
+++ b/module/plugins/hoster/HighWayMe.py
@@ -3,13 +3,13 @@
import re
from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
-from module.plugins.internal.SimpleHoster import secondsToMidnight
+from module.plugins.internal.SimpleHoster import seconds_to_midnight
class HighWayMe(MultiHoster):
__name__ = "HighWayMe"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'https?://.+high-way\.my'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -21,10 +21,10 @@ class HighWayMe(MultiHoster):
def setup(self):
- self.chunkLimit = 4
+ self.chunk_limit = 4
- def checkErrors(self):
+ def check_errors(self):
if self.html.get('code') == 302: #@NOTE: This is not working. It should by if 302 Moved Temporarily then... But I don't now how to implement it.
self.account.relogin(self.user)
self.retry()
@@ -33,31 +33,31 @@ class HighWayMe(MultiHoster):
self.offline()
elif "downloadlimit" in self.html:
- self.logWarning(_("Reached maximum connctions"))
+ self.log_warning(_("Reached maximum connctions"))
self.retry(5, 60, _("Reached maximum connctions"))
elif "trafficlimit" in self.html:
- self.logWarning(_("Reached daily limit"))
- self.retry(wait_time=secondsToMidnight(gmt=2), reason="Daily limit for this host reached")
+ self.log_warning(_("Reached daily limit"))
+ self.retry(wait_time=seconds_to_midnight(gmt=2), reason="Daily limit for this host reached")
elif "<code>8</code>" in self.html:
- self.logWarning(_("Hoster temporarily unavailable, waiting 1 minute and retry"))
+ self.log_warning(_("Hoster temporarily unavailable, waiting 1 minute and retry"))
self.retry(5, 60, _("Hoster is temporarily unavailable"))
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
for _i in xrange(5):
self.html = self.load("https://high-way.me/load.php",
get={'link': self.pyfile.url})
if self.html:
- self.logDebug("JSON data: " + self.html)
+ self.log_debug("JSON data: " + self.html)
break
else:
- self.logInfo(_("Unable to get API data, waiting 1 minute and retry"))
+ self.log_info(_("Unable to get API data, waiting 1 minute and retry"))
self.retry(5, 60, _("Unable to get API data"))
- self.checkErrors()
+ self.check_errors()
try:
self.pyfile.name = re.search(r'<name>([^<]+)</name>', self.html).group(1)
diff --git a/module/plugins/hoster/HostujeNet.py b/module/plugins/hoster/HostujeNet.py
index ec91e50b9..18cba844f 100644
--- a/module/plugins/hoster/HostujeNet.py
+++ b/module/plugins/hoster/HostujeNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class HostujeNet(SimpleHoster):
__name__ = "HostujeNet"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?hostuje\.net/\w+'
@@ -23,11 +23,11 @@ class HostujeNet(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(r'<script src="([\w^_]+.php)"></script>', self.html)
if m:
jscript = self.load("http://hostuje.net/" + m.group(1))
@@ -39,7 +39,7 @@ class HostujeNet(SimpleHoster):
else:
self.error(_("script not found"))
- action, inputs = self.parseHtmlForm(pyfile.url.replace(".", "\.").replace( "?", "\?"))
+ action, inputs = self.parse_html_form(pyfile.url.replace(".", "\.").replace( "?", "\?"))
if not action:
self.error(_("form not found"))
diff --git a/module/plugins/hoster/HotfileCom.py b/module/plugins/hoster/HotfileCom.py
index 082415c6b..4878b111b 100644
--- a/module/plugins/hoster/HotfileCom.py
+++ b/module/plugins/hoster/HotfileCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class HotfileCom(DeadHoster):
__name__ = "HotfileCom"
__type__ = "hoster"
- __version__ = "0.37"
+ __version__ = "0.38"
__pattern__ = r'https?://(?:www\.)?hotfile\.com/dl/\d+/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/HugefilesNet.py b/module/plugins/hoster/HugefilesNet.py
index 3fdcca1ba..d3851d137 100644
--- a/module/plugins/hoster/HugefilesNet.py
+++ b/module/plugins/hoster/HugefilesNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class HugefilesNet(XFSHoster):
__name__ = "HugefilesNet"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?hugefiles\.net/\w{12}'
diff --git a/module/plugins/hoster/HundredEightyUploadCom.py b/module/plugins/hoster/HundredEightyUploadCom.py
index 2a35a008f..74f69fd3b 100644
--- a/module/plugins/hoster/HundredEightyUploadCom.py
+++ b/module/plugins/hoster/HundredEightyUploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class HundredEightyUploadCom(XFSHoster):
__name__ = "HundredEightyUploadCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?180upload\.com/\w{12}'
diff --git a/module/plugins/hoster/IFileWs.py b/module/plugins/hoster/IFileWs.py
index ff263d43a..a0149d034 100644
--- a/module/plugins/hoster/IFileWs.py
+++ b/module/plugins/hoster/IFileWs.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class IFileWs(DeadHoster):
__name__ = "IFileWs"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?ifile\.ws/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/IcyFilesCom.py b/module/plugins/hoster/IcyFilesCom.py
index f81381c66..6d5accddb 100644
--- a/module/plugins/hoster/IcyFilesCom.py
+++ b/module/plugins/hoster/IcyFilesCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class IcyFilesCom(DeadHoster):
__name__ = "IcyFilesCom"
__type__ = "hoster"
- __version__ = "0.06"
+ __version__ = "0.07"
__pattern__ = r'http://(?:www\.)?icyfiles\.com/(.+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/IfileIt.py b/module/plugins/hoster/IfileIt.py
index 18aa0b60f..148cd57d3 100644
--- a/module/plugins/hoster/IfileIt.py
+++ b/module/plugins/hoster/IfileIt.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class IfileIt(DeadHoster):
__name__ = "IfileIt"
__type__ = "hoster"
- __version__ = "0.29"
+ __version__ = "0.30"
__pattern__ = r'^unmatchable$'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/IfolderRu.py b/module/plugins/hoster/IfolderRu.py
index 5f3b4bb51..cc39b32cb 100644
--- a/module/plugins/hoster/IfolderRu.py
+++ b/module/plugins/hoster/IfolderRu.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class IfolderRu(SimpleHoster):
__name__ = "IfolderRu"
__type__ = "hoster"
- __version__ = "0.39"
+ __version__ = "0.40"
__pattern__ = r'http://(?:www)?(files\.)?(ifolder\.ru|metalarea\.org|rusfolder\.(com|net|ru))/(files/)?(?P<ID>\d+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -34,11 +34,11 @@ class IfolderRu(SimpleHoster):
def setup(self):
- self.resumeDownload = self.multiDL = bool(self.account)
- self.chunkLimit = 1
+ self.resume_download = self.multi_dl = bool(self.account)
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
url = "http://rusfolder.com/%s" % self.info['pattern']['ID']
self.html = self.load("http://rusfolder.com/%s" % self.info['pattern']['ID'])
self.getFileInfo()
@@ -47,14 +47,14 @@ class IfolderRu(SimpleHoster):
captcha_url = "http://ints.rusfolder.com/random/images/?session=%s" % session_id
for _i in xrange(5):
- action, inputs = self.parseHtmlForm('id="download-step-one-form"')
- inputs['confirmed_number'] = self.decryptCaptcha(captcha_url, cookies=True)
+ action, inputs = self.parse_html_form('id="download-step-one-form"')
+ inputs['confirmed_number'] = self.decrypt_captcha(captcha_url, cookies=True)
inputs['action'] = '1'
- self.logDebug(inputs)
+ self.log_debug(inputs)
self.html = self.load(url, post=inputs)
if self.WRONG_CAPTCHA_PATTERN in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
break
else:
diff --git a/module/plugins/hoster/JumbofilesCom.py b/module/plugins/hoster/JumbofilesCom.py
index 4812f0224..1da6d7d3c 100644
--- a/module/plugins/hoster/JumbofilesCom.py
+++ b/module/plugins/hoster/JumbofilesCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class JumbofilesCom(SimpleHoster):
__name__ = "JumbofilesCom"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?jumbofiles\.com/(?P<ID>\w{12})'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -24,11 +24,11 @@ class JumbofilesCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
post_data = {"id": self.info['pattern']['ID'], "op": "download3", "rand": ""}
html = self.load(self.pyfile.url, post=post_data)
self.link = re.search(self.LINK_FREE_PATTERN, html).group(1)
diff --git a/module/plugins/hoster/JunocloudMe.py b/module/plugins/hoster/JunocloudMe.py
index 415d5e2d0..fb5eae4f8 100644
--- a/module/plugins/hoster/JunocloudMe.py
+++ b/module/plugins/hoster/JunocloudMe.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class JunocloudMe(XFSHoster):
__name__ = "JunocloudMe"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:\w+\.)?junocloud\.me/\w{12}'
diff --git a/module/plugins/hoster/Keep2ShareCc.py b/module/plugins/hoster/Keep2ShareCc.py
index d90466904..c743f4fc9 100644
--- a/module/plugins/hoster/Keep2ShareCc.py
+++ b/module/plugins/hoster/Keep2ShareCc.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class Keep2ShareCc(SimpleHoster):
__name__ = "Keep2ShareCc"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'https?://(?:www\.)?(keep2share|k2s|keep2s)\.cc/file/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -39,11 +39,11 @@ class Keep2ShareCc(SimpleHoster):
ERROR_PATTERN = r'>\s*(Free user can\'t download large files|You no can access to this file|This download available only for premium users|This is private file)'
- def checkErrors(self):
+ def check_errors(self):
m = re.search(self.TEMP_ERROR_PATTERN, self.html)
if m:
self.info['error'] = m.group(1)
- self.wantReconnect = True
+ self.want_reconnect = True
self.retry(wait_time=30 * 60, reason=m.group(0))
m = re.search(self.ERROR_PATTERN, self.html)
@@ -53,30 +53,30 @@ class Keep2ShareCc(SimpleHoster):
m = re.search(self.WAIT_PATTERN, self.html)
if m:
- self.logDebug("Hoster told us to wait for %s" % m.group(1))
+ self.log_debug("Hoster told us to wait for %s" % m.group(1))
#: string to time convert courtesy of https://stackoverflow.com/questions/10663720
ftr = [3600, 60, 1]
wait_time = sum(a * b for a, b in zip(ftr, map(int, m.group(1).split(':'))))
- self.wantReconnect = True
+ self.want_reconnect = True
self.retry(wait_time=wait_time, reason="Please wait to download this file")
self.info.pop('error', None)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.fid = re.search(r'<input type="hidden" name="slow_id" value="(.+?)">', self.html).group(1)
self.html = self.load(pyfile.url, post={'yt0': '', 'slow_id': self.fid})
- #: self.logDebug(self.fid)
- #: self.logDebug(pyfile.url)
+ #: self.log_debug(self.fid)
+ #: self.log_debug(pyfile.url)
- self.checkErrors()
+ self.check_errors()
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
- self.handleCaptcha()
+ self.handle_captcha()
self.wait(31)
self.html = self.load(pyfile.url)
@@ -87,20 +87,20 @@ class Keep2ShareCc(SimpleHoster):
self.link = m.group(1)
- def handleCaptcha(self):
+ def handle_captcha(self):
post_data = {'free' : 1,
'freeDownloadRequest': 1,
'uniqueId' : self.fid,
'yt0' : ''}
m = re.search(r'id="(captcha\-form)"', self.html)
- self.logDebug("captcha-form found %s" % m)
+ self.log_debug("captcha-form found %s" % m)
m = re.search(self.CAPTCHA_PATTERN, self.html)
- self.logDebug("CAPTCHA_PATTERN found %s" % m)
+ self.log_debug("CAPTCHA_PATTERN found %s" % m)
if m:
captcha_url = urlparse.urljoin("http://keep2s.cc/", m.group(1))
- post_data['CaptchaForm[code]'] = self.decryptCaptcha(captcha_url)
+ post_data['CaptchaForm[code]'] = self.decrypt_captcha(captcha_url)
else:
recaptcha = ReCaptcha(self)
response, challenge = recaptcha.challenge()
@@ -110,9 +110,9 @@ class Keep2ShareCc(SimpleHoster):
self.html = self.load(self.pyfile.url, post=post_data)
if 'verification code is incorrect' not in self.html:
- self.correctCaptcha()
+ self.correct_captcha()
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
getInfo = create_getInfo(Keep2ShareCc)
diff --git a/module/plugins/hoster/KickloadCom.py b/module/plugins/hoster/KickloadCom.py
index 7690c85c8..2be82bcfd 100644
--- a/module/plugins/hoster/KickloadCom.py
+++ b/module/plugins/hoster/KickloadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class KickloadCom(DeadHoster):
__name__ = "KickloadCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?kickload\.com/get/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/KingfilesNet.py b/module/plugins/hoster/KingfilesNet.py
index f14cbd8b4..41e6f1c46 100644
--- a/module/plugins/hoster/KingfilesNet.py
+++ b/module/plugins/hoster/KingfilesNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class KingfilesNet(SimpleHoster):
__name__ = "KingfilesNet"
__type__ = "hoster"
- __version__ = "0.08"
+ __version__ = "0.09"
__pattern__ = r'http://(?:www\.)?kingfiles\.net/(?P<ID>\w{12})'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -31,11 +31,11 @@ class KingfilesNet(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: Click the free user button
post_data = {'op' : "download1",
'usr_login' : "",
@@ -55,7 +55,7 @@ class KingfilesNet(SimpleHoster):
self.error(_("Random key not found"))
rand = m.group(1)
- self.logDebug("rand = ", rand)
+ self.log_debug("rand = ", rand)
post_data = {'op' : "download2",
'id' : self.info['pattern']['ID'],
diff --git a/module/plugins/hoster/LemUploadsCom.py b/module/plugins/hoster/LemUploadsCom.py
index 098867c8b..71ad1c5db 100644
--- a/module/plugins/hoster/LemUploadsCom.py
+++ b/module/plugins/hoster/LemUploadsCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class LemUploadsCom(DeadHoster):
__name__ = "LemUploadsCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?lemuploads\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py
index 62afb6c7c..60634354b 100644
--- a/module/plugins/hoster/LetitbitNet.py
+++ b/module/plugins/hoster/LetitbitNet.py
@@ -12,7 +12,7 @@ import urlparse
from module.common.json_layer import json_loads, json_dumps
from module.network.RequestFactory import getURL
from module.plugins.internal.ReCaptcha import ReCaptcha
-from module.plugins.internal.SimpleHoster import SimpleHoster, secondsToMidnight
+from module.plugins.internal.SimpleHoster import SimpleHoster, seconds_to_midnight
def api_response(url):
@@ -22,7 +22,7 @@ def api_response(url):
return json_loads(api_rep)
-def getInfo(urls):
+def get_info(urls):
for url in urls:
api_rep = api_response(url)
if api_rep['status'] == 'OK':
@@ -35,7 +35,7 @@ def getInfo(urls):
class LetitbitNet(SimpleHoster):
__name__ = "LetitbitNet"
__type__ = "hoster"
- __version__ = "0.31"
+ __version__ = "0.32"
__pattern__ = r'https?://(?:www\.)?(letitbit|shareflare)\.net/download/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -53,16 +53,16 @@ class LetitbitNet(SimpleHoster):
def setup(self):
- self.resumeDownload = True
+ self.resume_download = True
- def handleFree(self, pyfile):
- action, inputs = self.parseHtmlForm('id="ifree_form"')
+ def handle_free(self, pyfile):
+ action, inputs = self.parse_html_form('id="ifree_form"')
if not action:
self.error(_("ifree_form"))
pyfile.size = float(inputs['sssize'])
- self.logDebug(action, inputs)
+ self.log_debug(action, inputs)
inputs['desc'] = ""
self.html = self.load(urlparse.urljoin("http://letitbit.net/", action), post=inputs)
@@ -70,12 +70,12 @@ class LetitbitNet(SimpleHoster):
m = re.search(self.SECONDS_PATTERN, self.html)
seconds = int(m.group(1)) if m else 60
- self.logDebug("Seconds found", seconds)
+ self.log_debug("Seconds found", seconds)
m = re.search(self.CAPTCHA_CONTROL_FIELD, self.html)
recaptcha_control_field = m.group(1)
- self.logDebug("ReCaptcha control field found", recaptcha_control_field)
+ self.log_debug("ReCaptcha control field found", recaptcha_control_field)
self.wait(seconds)
@@ -83,7 +83,7 @@ class LetitbitNet(SimpleHoster):
if res != '1':
self.error(_("Unknown response - ajax_check_url"))
- self.logDebug(res)
+ self.log_debug(res)
recaptcha = ReCaptcha(self)
response, challenge = recaptcha.challenge()
@@ -92,21 +92,21 @@ class LetitbitNet(SimpleHoster):
"recaptcha_response_field": response,
"recaptcha_control_field": recaptcha_control_field}
- self.logDebug("Post data to send", post_data)
+ self.log_debug("Post data to send", post_data)
res = self.load("http://letitbit.net/ajax/check_recaptcha.php", post=post_data)
- self.logDebug(res)
+ self.log_debug(res)
if not res:
- self.invalidCaptcha()
+ self.invalid_captcha()
if res == "error_free_download_blocked":
- self.logWarning(_("Daily limit reached"))
- self.wait(secondsToMidnight(gmt=2), True)
+ self.log_warning(_("Daily limit reached"))
+ self.wait(seconds_to_midnight(gmt=2), True)
if res == "error_wrong_captcha":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry()
elif res.startswith('['):
@@ -121,13 +121,13 @@ class LetitbitNet(SimpleHoster):
self.link = urls[0]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
api_key = self.user
premium_key = self.account.getAccountData(self.user)['password']
json_data = [api_key, ["download/direct_links", {"pass": premium_key, "link": pyfile.url}]]
api_rep = self.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)})
- self.logDebug("API Data: " + api_rep)
+ self.log_debug("API Data: " + api_rep)
api_rep = json_loads(api_rep)
if api_rep['status'] == 'FAIL':
diff --git a/module/plugins/hoster/LinksnappyCom.py b/module/plugins/hoster/LinksnappyCom.py
index f7bdef0dd..19cad7b97 100644
--- a/module/plugins/hoster/LinksnappyCom.py
+++ b/module/plugins/hoster/LinksnappyCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class LinksnappyCom(MultiHoster):
__name__ = "LinksnappyCom"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'https?://(?:[^/]+\.)?linksnappy\.com'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -24,7 +24,7 @@ class LinksnappyCom(MultiHoster):
SINGLE_CHUNK_HOSTERS = ["easybytez.com"]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
host = self._get_host(pyfile.url)
json_params = json_dumps({'link' : pyfile.url,
'type' : host,
@@ -34,7 +34,7 @@ class LinksnappyCom(MultiHoster):
r = self.load("http://gen.linksnappy.com/genAPI.php",
post={'genLinks': json_params})
- self.logDebug("JSON data: " + r)
+ self.log_debug("JSON data: " + r)
j = json_loads(r)['links'][0]
@@ -45,7 +45,7 @@ class LinksnappyCom(MultiHoster):
self.link = j['generated']
if host in self.SINGLE_CHUNK_HOSTERS:
- self.chunkLimit = 1
+ self.chunk_limit = 1
else:
self.setup()
diff --git a/module/plugins/hoster/LoadTo.py b/module/plugins/hoster/LoadTo.py
index e974b9f3d..5c276ff38 100644
--- a/module/plugins/hoster/LoadTo.py
+++ b/module/plugins/hoster/LoadTo.py
@@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class LoadTo(SimpleHoster):
__name__ = "LoadTo"
__type__ = "hoster"
- __version__ = "0.24"
+ __version__ = "0.25"
__pattern__ = r'http://(?:www\.)?load\.to/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -35,11 +35,11 @@ class LoadTo(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: Search for Download URL
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
diff --git a/module/plugins/hoster/LolabitsEs.py b/module/plugins/hoster/LolabitsEs.py
index 08773888b..e5656b6a0 100644
--- a/module/plugins/hoster/LolabitsEs.py
+++ b/module/plugins/hoster/LolabitsEs.py
@@ -9,7 +9,7 @@ from module.utils import html_unescape
class LolabitsEs(SimpleHoster):
__name__ = "LolabitsEs"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?lolabits\.es/.+'
@@ -28,15 +28,15 @@ class LolabitsEs(SimpleHoster):
def setup(self):
- self.chunkLimit = 1
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
fileid = re.search(self.FILEID_PATTERN, self.html).group(1)
- self.logDebug("FileID: " + fileid)
+ self.log_debug("FileID: " + fileid)
token = re.search(self.TOKEN_PATTERN, self.html).group(1)
- self.logDebug("Token: " + token)
+ self.log_debug("Token: " + token)
self.html = self.load("http://lolabits.es/action/License/Download",
post={'fileId' : fileid,
diff --git a/module/plugins/hoster/LomafileCom.py b/module/plugins/hoster/LomafileCom.py
index ef05cd1ea..67cb32608 100644
--- a/module/plugins/hoster/LomafileCom.py
+++ b/module/plugins/hoster/LomafileCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class LomafileCom(DeadHoster):
__name__ = "LomafileCom"
__type__ = "hoster"
- __version__ = "0.52"
+ __version__ = "0.53"
__pattern__ = r'http://lomafile\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/LuckyShareNet.py b/module/plugins/hoster/LuckyShareNet.py
index c08203346..ec5e87f12 100644
--- a/module/plugins/hoster/LuckyShareNet.py
+++ b/module/plugins/hoster/LuckyShareNet.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class LuckyShareNet(SimpleHoster):
__name__ = "LuckyShareNet"
__type__ = "hoster"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'https?://(?:www\.)?luckyshare\.net/(?P<ID>\d{10,})'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -25,13 +25,13 @@ class LuckyShareNet(SimpleHoster):
OFFLINE_PATTERN = r'There is no such file available'
- def parseJson(self, rep):
+ def parse_json(self, rep):
if 'AJAX Error' in rep:
html = self.load(self.pyfile.url)
m = re.search(r"waitingtime = (\d+);", html)
if m:
seconds = int(m.group(1))
- self.logDebug("You have to wait %d seconds between free downloads" % seconds)
+ self.log_debug("You have to wait %d seconds between free downloads" % seconds)
self.retry(wait_time=seconds)
else:
self.error(_("Unable to detect wait time between free downloads"))
@@ -42,12 +42,12 @@ class LuckyShareNet(SimpleHoster):
#@TODO: There should be a filesize limit for free downloads
# Some files could not be downloaded in free mode
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
rep = self.load(r"http://luckyshare.net/download/request/type/time/file/" + self.info['pattern']['ID'])
- self.logDebug("JSON: " + rep)
+ self.log_debug("JSON: " + rep)
- json = self.parseJson(rep)
+ json = self.parse_json(rep)
self.wait(json['time'])
recaptcha = ReCaptcha(self)
@@ -56,13 +56,13 @@ class LuckyShareNet(SimpleHoster):
response, challenge = recaptcha.challenge()
rep = self.load(r"http://luckyshare.net/download/verify/challenge/%s/response/%s/hash/%s" %
(challenge, response, json['hash']))
- self.logDebug("JSON: " + rep)
+ self.log_debug("JSON: " + rep)
if 'link' in rep:
- json.update(self.parseJson(rep))
- self.correctCaptcha()
+ json.update(self.parse_json(rep))
+ self.correct_captcha()
break
elif 'Verification failed' in rep:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
self.error(_("Unable to get downlaod link"))
diff --git a/module/plugins/hoster/MediafireCom.py b/module/plugins/hoster/MediafireCom.py
index 56f13362a..b1a7477e1 100644
--- a/module/plugins/hoster/MediafireCom.py
+++ b/module/plugins/hoster/MediafireCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class MediafireCom(SimpleHoster):
__name__ = "MediafireCom"
__type__ = "hoster"
- __version__ = "0.89"
+ __version__ = "0.90"
__pattern__ = r'https?://(?:www\.)?mediafire\.com/(file/|view/\??|download(\.php\?|/)|\?)(?P<ID>\w{15})'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -31,11 +31,11 @@ class MediafireCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleCaptcha(self):
+ def handle_captcha(self):
solvemedia = SolveMedia(self)
captcha_key = solvemedia.detect_key()
@@ -55,22 +55,22 @@ class MediafireCom(SimpleHoster):
post={'g-recaptcha-response': response})
- def handleFree(self, pyfile):
- self.handleCaptcha()
+ def handle_free(self, pyfile):
+ self.handle_captcha()
if self.PASSWORD_PATTERN in self.html:
- password = self.getPassword()
+ password = self.get_password()
if not password:
self.fail(_("No password found"))
else:
- self.logInfo(_("Password protected link, trying: ") + password)
+ self.log_info(_("Password protected link, trying: ") + password)
self.html = self.load(self.link, post={'downloadp': password})
if self.PASSWORD_PATTERN in self.html:
self.fail(_("Incorrect password"))
- return super(MediafireCom, self).handleFree(pyfile)
+ return super(MediafireCom, self).handle_free(pyfile)
getInfo = create_getInfo(MediafireCom)
diff --git a/module/plugins/hoster/MegaCoNz.py b/module/plugins/hoster/MegaCoNz.py
index 2e6dcfda6..411c12c4a 100644
--- a/module/plugins/hoster/MegaCoNz.py
+++ b/module/plugins/hoster/MegaCoNz.py
@@ -48,7 +48,7 @@ from module.utils import decode, fs_decode, fs_encode
class MegaCoNz(Hoster):
__name__ = "MegaCoNz"
__type__ = "hoster"
- __version__ = "0.30"
+ __version__ = "0.31"
__pattern__ = r'(https?://(?:www\.)?mega(\.co)?\.nz/|mega:|chrome:.+?)#(?P<TYPE>N|)!(?P<ID>[\w^_]+)!(?P<KEY>[\w,-]+)'
@@ -67,7 +67,7 @@ class MegaCoNz(Hoster):
return standard_b64decode(data + '=' * (-len(data) % 4))
- def getCipherKey(self, key):
+ def get_cipher_key(self, key):
"""
Construct the cipher key from the given data
"""
@@ -88,16 +88,16 @@ class MegaCoNz(Hoster):
uid = random.randint(10 << 9, 10 ** 10)
res = self.load(self.API_URL, get={'id': uid}, post=json_dumps([kwargs]))
- self.logDebug("Api Response: " + res)
+ self.log_debug("Api Response: " + res)
return json_loads(res)
- def decryptAttr(self, data, key):
- k, iv, meta_mac = self.getCipherKey(key)
+ def decrypt_attr(self, data, key):
+ k, iv, meta_mac = self.get_cipher_key(key)
cbc = AES.new(k, AES.MODE_CBC, "\0" * 16)
attr = decode(cbc.decrypt(self.b64_decode(data)))
- self.logDebug("Decrypted Attr: %s" % attr)
+ self.log_debug("Decrypted Attr: %s" % attr)
if not attr.startswith("MEGA"):
self.fail(_("Decryption failed"))
@@ -105,7 +105,7 @@ class MegaCoNz(Hoster):
return json_loads(re.search(r'{.+?}', attr).group(0))
- def decryptFile(self, key):
+ def decrypt_file(self, key):
"""
Decrypts the file at lastDownload`
"""
@@ -113,14 +113,14 @@ class MegaCoNz(Hoster):
n = self.b64_decode(key)[16:24]
#: convert counter to long and shift bytes
- k, iv, meta_mac = self.getCipherKey(key)
+ k, iv, meta_mac = self.get_cipher_key(key)
ctr = Counter.new(128, initial_value=long(n.encode("hex"), 16) << 64)
cipher = AES.new(k, AES.MODE_CTR, counter=ctr)
self.pyfile.setStatus("decrypting")
self.pyfile.setProgress(0)
- file_crypted = fs_encode(self.lastDownload)
+ file_crypted = fs_encode(self.last_download)
file_decrypted = file_crypted.rsplit(self.FILE_SUFFIX)[0]
try:
@@ -167,17 +167,17 @@ class MegaCoNz(Hoster):
#: self.fail(_("Checksum mismatch"))
os.remove(file_crypted)
- self.lastDownload = fs_decode(file_decrypted)
+ self.last_download = fs_decode(file_decrypted)
- def checkError(self, code):
+ def check_error(self, code):
ecode = abs(code)
if ecode in (9, 16, 21):
self.offline()
elif ecode in (3, 13, 17, 18, 19):
- self.tempOffline()
+ self.temp_offline()
elif ecode in (1, 4, 6, 10, 15, 21):
self.retry(5, 30, _("Error code: [%s]") % -ecode)
@@ -192,7 +192,7 @@ class MegaCoNz(Hoster):
key = pattern['KEY']
public = pattern['TYPE'] == ''
- self.logDebug("ID: %s" % id, "Key: %s" % key, "Type: %s" % ("public" if public else "node"))
+ self.log_debug("ID: %s" % id, "Key: %s" % key, "Type: %s" % ("public" if public else "node"))
#: g is for requesting a download url
#: this is similar to the calls in the mega js app, documentation is very bad
@@ -202,11 +202,11 @@ class MegaCoNz(Hoster):
mega = self.api_response(a="g", g=1, n=id, ssl=1)[0]
if isinstance(mega, int):
- self.checkError(mega)
+ self.check_error(mega)
elif "e" in mega:
- self.checkError(mega['e'])
+ self.check_error(mega['e'])
- attr = self.decryptAttr(mega['at'], key)
+ attr = self.decrypt_attr(mega['at'], key)
pyfile.name = attr['n'] + self.FILE_SUFFIX
pyfile.size = mega['s']
@@ -215,7 +215,7 @@ class MegaCoNz(Hoster):
self.download(mega['g'])
- self.decryptFile(key)
+ self.decrypt_file(key)
#: Everything is finished and final name can be set
pyfile.name = attr['n']
diff --git a/module/plugins/hoster/MegaDebridEu.py b/module/plugins/hoster/MegaDebridEu.py
index e4a002f9b..67c8f087b 100644
--- a/module/plugins/hoster/MegaDebridEu.py
+++ b/module/plugins/hoster/MegaDebridEu.py
@@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class MegaDebridEu(MultiHoster):
__name__ = "MegaDebridEu"
__type__ = "hoster"
- __version__ = "0.48"
+ __version__ = "0.49"
__pattern__ = r'http://((?:www\d+\.|s\d+\.)?mega-debrid\.eu|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/download/file/[\w^_]+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -41,7 +41,7 @@ class MegaDebridEu(MultiHoster):
return False
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
"""
Debrid a link
Return The debrided link if succeed or original link if fail
diff --git a/module/plugins/hoster/MegaFilesSe.py b/module/plugins/hoster/MegaFilesSe.py
index 249eff952..f592c940b 100644
--- a/module/plugins/hoster/MegaFilesSe.py
+++ b/module/plugins/hoster/MegaFilesSe.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class MegaFilesSe(DeadHoster):
__name__ = "MegaFilesSe"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?megafiles\.se/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/MegaRapidCz.py b/module/plugins/hoster/MegaRapidCz.py
index ed6e0a3ad..e00efc1a9 100644
--- a/module/plugins/hoster/MegaRapidCz.py
+++ b/module/plugins/hoster/MegaRapidCz.py
@@ -8,7 +8,7 @@ from module.network.RequestFactory import getRequest
from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo
-def getInfo(urls):
+def get_info(urls):
h = getRequest()
h.c.setopt(pycurl.HTTPHEADER,
["Accept: text/html",
@@ -22,7 +22,7 @@ def getInfo(urls):
class MegaRapidCz(SimpleHoster):
__name__ = "MegaRapidCz"
__type__ = "hoster"
- __version__ = "0.56"
+ __version__ = "0.57"
__pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/soubor/\d+/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -48,10 +48,10 @@ class MegaRapidCz(SimpleHoster):
def setup(self):
- self.chunkLimit = 1
+ self.chunk_limit = 1
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
m = re.search(self.LINK_PREMIUM_PATTERN, self.html)
if m:
self.link = m.group(1)
diff --git a/module/plugins/hoster/MegaRapidoNet.py b/module/plugins/hoster/MegaRapidoNet.py
index 4b0465e44..cc5be0ea3 100644
--- a/module/plugins/hoster/MegaRapidoNet.py
+++ b/module/plugins/hoster/MegaRapidoNet.py
@@ -5,7 +5,7 @@ import random
from module.plugins.internal.MultiHoster import MultiHoster
-def random_with_N_digits(n):
+def random_with_n_digits(n):
rand = "0."
not_zero = 0
for i in xrange(1, n + 1):
@@ -23,7 +23,7 @@ def random_with_N_digits(n):
class MegaRapidoNet(MultiHoster):
__name__ = "MegaRapidoNet"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?\w+\.megarapido\.net/\?file=\w+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -39,7 +39,7 @@ class MegaRapidoNet(MultiHoster):
ERROR_PATTERN = r'<\s*?div[^>]*?class\s*?=\s*?["\']?alert-message error.*?>([^<]*)'
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.html = self.load("http://megarapido.net/gerar.php",
post={'rand' :random_with_N_digits(16),
'urllist' : pyfile.url,
@@ -52,4 +52,4 @@ class MegaRapidoNet(MultiHoster):
if "desloga e loga novamente para gerar seus links" in self.html.lower():
self.error("You have logged in at another place")
- return super(MegaRapidoNet, self).handlePremium(pyfile)
+ return super(MegaRapidoNet, self).handle_premium(pyfile)
diff --git a/module/plugins/hoster/MegacrypterCom.py b/module/plugins/hoster/MegacrypterCom.py
index 27c3c7253..7152a1cbc 100644
--- a/module/plugins/hoster/MegacrypterCom.py
+++ b/module/plugins/hoster/MegacrypterCom.py
@@ -10,7 +10,7 @@ from module.plugins.hoster.MegaCoNz import MegaCoNz
class MegacrypterCom(MegaCoNz):
__name__ = "MegacrypterCom"
__type__ = "hoster"
- __version__ = "0.22"
+ __version__ = "0.23"
__pattern__ = r'https?://\w{0,10}\.?megacrypter\.com/[\w!-]+'
@@ -27,9 +27,9 @@ class MegacrypterCom(MegaCoNz):
"""
Dispatch a call to the api, see megacrypter.com/api_doc
"""
- self.logDebug("JSON request: " + json_dumps(kwargs))
+ self.log_debug("JSON request: " + json_dumps(kwargs))
res = self.load(self.API_URL, post=json_dumps(kwargs))
- self.logDebug("API Response: " + res)
+ self.log_debug("API Response: " + res)
return json_loads(res)
@@ -53,7 +53,7 @@ class MegacrypterCom(MegaCoNz):
self.download(dl['url'])
- self.decryptFile(key)
+ self.decrypt_file(key)
#: Everything is finished and final name can be set
pyfile.name = info['name']
diff --git a/module/plugins/hoster/MegareleaseOrg.py b/module/plugins/hoster/MegareleaseOrg.py
index 6349144ec..5273a1d5e 100644
--- a/module/plugins/hoster/MegareleaseOrg.py
+++ b/module/plugins/hoster/MegareleaseOrg.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class MegareleaseOrg(DeadHoster):
__name__ = "MegareleaseOrg"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?megarelease\.org/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/MegasharesCom.py b/module/plugins/hoster/MegasharesCom.py
index 0c74e380d..34ed8bf8b 100644
--- a/module/plugins/hoster/MegasharesCom.py
+++ b/module/plugins/hoster/MegasharesCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class MegasharesCom(SimpleHoster):
__name__ = "MegasharesCom"
__type__ = "hoster"
- __version__ = "0.28"
+ __version__ = "0.29"
__pattern__ = r'http://(?:www\.)?(d\d{2}\.)?megashares\.com/((index\.php)?\?d\d{2}=|dl/)\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -35,15 +35,15 @@ class MegasharesCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = self.premium
+ self.resume_download = True
+ self.multi_dl = self.premium
- def handlePremium(self, pyfile):
- self.handleDownload(True)
+ def handle_premium(self, pyfile):
+ self.handle_download(True)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if self.NO_SLOTS_PATTERN in self.html:
self.retry(wait_time=5 * 60)
@@ -55,10 +55,10 @@ class MegasharesCom(SimpleHoster):
for _i in xrange(5):
random_num = re.search(self.REACTIVATE_NUM_PATTERN, self.html).group(1)
- verifyinput = self.decryptCaptcha("http://d01.megashares.com/index.php",
+ verifyinput = self.decrypt_captcha("http://d01.megashares.com/index.php",
get={'secgfx': "gfx", 'random_num': random_num})
- self.logInfo(_("Reactivating passport %s: %s %s") % (passport_num, random_num, verifyinput))
+ self.log_info(_("Reactivating passport %s: %s %s") % (passport_num, random_num, verifyinput))
res = self.load("http://d01.megashares.com%s" % request_uri,
get={'rs' : "check_passport_renewal",
@@ -69,10 +69,10 @@ class MegasharesCom(SimpleHoster):
'rsrnd[]' : str(int(time.time() * 1000))})
if 'Thank you for reactivating your passport.' in res:
- self.correctCaptcha()
+ self.correct_captcha()
self.retry()
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
self.fail(_("Failed to reactivate passport"))
@@ -80,7 +80,7 @@ class MegasharesCom(SimpleHoster):
if m:
time = [int(x) for x in m.groups()]
renew = time[0] + (time[1] * 60) + (time[2] * 60)
- self.logDebug("Waiting %d seconds for a new passport" % renew)
+ self.log_debug("Waiting %d seconds for a new passport" % renew)
self.retry(wait_time=renew, reason=_("Passport renewal"))
#: Check traffic left on passport
@@ -88,17 +88,17 @@ class MegasharesCom(SimpleHoster):
if m is None:
self.fail(_("Passport not found"))
- self.logInfo(_("Download passport: %s") % m.group(1))
+ self.log_info(_("Download passport: %s") % m.group(1))
data_left = float(m.group(2)) * 1024 ** {'B': 0, 'KB': 1, 'MB': 2, 'GB': 3}[m.group(3)]
- self.logInfo(_("Data left: %s %s (%d MB needed)") % (m.group(2), m.group(3), self.pyfile.size / 1048576))
+ self.log_info(_("Data left: %s %s (%d MB needed)") % (m.group(2), m.group(3), self.pyfile.size / 1048576))
if not data_left:
self.retry(wait_time=600, reason=_("Passport renewal"))
- self.handleDownload(False)
+ self.handle_download(False)
- def handleDownload(self, premium=False):
+ def handle_download(self, premium=False):
#: Find download link
m = re.search(self.LINK_PATTERN % (1 if premium else 2), self.html)
msg = _('%s download URL' % ('Premium' if premium else 'Free'))
@@ -106,7 +106,7 @@ class MegasharesCom(SimpleHoster):
self.error(msg)
self.link = m.group(1)
- self.logDebug("%s: %s" % (msg, self.link))
+ self.log_debug("%s: %s" % (msg, self.link))
getInfo = create_getInfo(MegasharesCom)
diff --git a/module/plugins/hoster/MegauploadCom.py b/module/plugins/hoster/MegauploadCom.py
index 590819f7f..b2f177dd6 100644
--- a/module/plugins/hoster/MegauploadCom.py
+++ b/module/plugins/hoster/MegauploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class MegauploadCom(DeadHoster):
__name__ = "MegauploadCom"
__type__ = "hoster"
- __version__ = "0.31"
+ __version__ = "0.32"
__pattern__ = r'http://(?:www\.)?megaupload\.com/\?.*&?(d|v)=\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/MegavideoCom.py b/module/plugins/hoster/MegavideoCom.py
index accd079fc..c2051703f 100644
--- a/module/plugins/hoster/MegavideoCom.py
+++ b/module/plugins/hoster/MegavideoCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class MegavideoCom(DeadHoster):
__name__ = "MegavideoCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?megavideo\.com/\?.*&?(d|v)=\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/MovReelCom.py b/module/plugins/hoster/MovReelCom.py
index 2fe5184ae..c7de30841 100644
--- a/module/plugins/hoster/MovReelCom.py
+++ b/module/plugins/hoster/MovReelCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class MovReelCom(XFSHoster):
__name__ = "MovReelCom"
__type__ = "hoster"
- __version__ = "1.24"
+ __version__ = "1.25"
__pattern__ = r'http://(?:www\.)?movreel\.com/\w{12}'
diff --git a/module/plugins/hoster/MultihostersCom.py b/module/plugins/hoster/MultihostersCom.py
index bcd7c6237..97894030d 100644
--- a/module/plugins/hoster/MultihostersCom.py
+++ b/module/plugins/hoster/MultihostersCom.py
@@ -6,7 +6,7 @@ from module.plugins.hoster.ZeveraCom import ZeveraCom
class MultihostersCom(ZeveraCom):
__name__ = "MultihostersCom"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)multihosters\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+'
diff --git a/module/plugins/hoster/MultishareCz.py b/module/plugins/hoster/MultishareCz.py
index 2a5031f08..1f6ed4334 100644
--- a/module/plugins/hoster/MultishareCz.py
+++ b/module/plugins/hoster/MultishareCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class MultishareCz(SimpleHoster):
__name__ = "MultishareCz"
__type__ = "hoster"
- __version__ = "0.40"
+ __version__ = "0.41"
__pattern__ = r'http://(?:www\.)?multishare\.cz/stahnout/(?P<ID>\d+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,20 +28,20 @@ class MultishareCz(SimpleHoster):
OFFLINE_PATTERN = ur'<h1>Stáhnout soubor</h1><p><strong>PoşadovanÜ soubor neexistuje.</strong></p>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.download("http://www.multishare.cz/html/download_free.php", get={'ID': self.info['pattern']['ID']})
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.download("http://www.multishare.cz/html/download_premium.php", get={'ID': self.info['pattern']['ID']})
- def handleMulti(self, pyfile):
+ def handle_multi(self, pyfile):
self.html = self.load('http://www.multishare.cz/html/mms_ajax.php', post={"link": pyfile.url})
- self.checkInfo()
+ self.check_info()
- if not self.checkTrafficLeft():
+ if not self.check_traffic_left():
self.fail(_("Not enough credit left to download file"))
self.download("http://dl%d.mms.multishare.cz/html/mms_process.php" % round(random.random() * 10000 * random.random()),
diff --git a/module/plugins/hoster/MyfastfileCom.py b/module/plugins/hoster/MyfastfileCom.py
index 1211a532f..f68bfab18 100644
--- a/module/plugins/hoster/MyfastfileCom.py
+++ b/module/plugins/hoster/MyfastfileCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class MyfastfileCom(MultiHoster):
__name__ = "MyfastfileCom"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -21,14 +21,14 @@ class MyfastfileCom(MultiHoster):
def setup(self):
- self.chunkLimit = -1
+ self.chunk_limit = -1
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.html = self.load('http://myfastfile.com/api.php',
get={'user': self.user, 'pass': self.account.getAccountData(self.user)['password'],
'link': pyfile.url})
- self.logDebug("JSON data: " + self.html)
+ self.log_debug("JSON data: " + self.html)
self.html = json_loads(self.html)
if self.html['status'] != 'ok':
diff --git a/module/plugins/hoster/MystoreTo.py b/module/plugins/hoster/MystoreTo.py
index 531368134..1609abf7e 100644
--- a/module/plugins/hoster/MystoreTo.py
+++ b/module/plugins/hoster/MystoreTo.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class MystoreTo(SimpleHoster):
__name__ = "MystoreTo"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?mystore\.to/dl/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -27,12 +27,12 @@ class MystoreTo(SimpleHoster):
def setup(self):
- self.chunkLimit = 1
- self.resumeDownload = True
- self.multiDL = True
+ self.chunk_limit = 1
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
try:
fid = re.search(r'wert="(.+?)"', self.html).group(1)
diff --git a/module/plugins/hoster/MyvideoDe.py b/module/plugins/hoster/MyvideoDe.py
index 2194069f5..ce43c0764 100644
--- a/module/plugins/hoster/MyvideoDe.py
+++ b/module/plugins/hoster/MyvideoDe.py
@@ -9,7 +9,7 @@ from module.utils import html_unescape
class MyvideoDe(Hoster):
__name__ = "MyvideoDe"
__type__ = "hoster"
- __version__ = "0.91"
+ __version__ = "0.92"
__pattern__ = r'http://(?:www\.)?myvideo\.de/watch/'
diff --git a/module/plugins/hoster/NahrajCz.py b/module/plugins/hoster/NahrajCz.py
index cf708be09..c463fbcfb 100644
--- a/module/plugins/hoster/NahrajCz.py
+++ b/module/plugins/hoster/NahrajCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class NahrajCz(DeadHoster):
__name__ = "NahrajCz"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?nahraj\.cz/content/download/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/NarodRu.py b/module/plugins/hoster/NarodRu.py
index 0a44cd6eb..3c3b0d124 100644
--- a/module/plugins/hoster/NarodRu.py
+++ b/module/plugins/hoster/NarodRu.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class NarodRu(SimpleHoster):
__name__ = "NarodRu"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?narod(\.yandex)?\.ru/(disk|start/\d+\.\w+-narod\.yandex\.ru)/(?P<ID>\d+)/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,7 +32,7 @@ class NarodRu(SimpleHoster):
LINK_FREE_PATTERN = r'<a class="h-link" rel="yandex_bar" href="(.+?)">'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
for _i in xrange(5):
self.html = self.load('http://narod.ru/disk/getcapchaxml/?rnd=%d' % int(random.random() * 777))
@@ -42,18 +42,18 @@ class NarodRu(SimpleHoster):
post_data = {"action": "sendcapcha"}
captcha_url, post_data['key'] = m.groups()
- post_data['rep'] = self.decryptCaptcha(captcha_url)
+ post_data['rep'] = self.decrypt_captcha(captcha_url)
self.html = self.load(pyfile.url, post=post_data)
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m:
self.link = urlparse.urljoin("http://narod.ru", m.group(1))
- self.correctCaptcha()
+ self.correct_captcha()
break
elif u'<b class="error-msg"><strong>ОшОблОсь?</strong>' in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
self.error(_("Download link"))
diff --git a/module/plugins/hoster/NetloadIn.py b/module/plugins/hoster/NetloadIn.py
index 82f5c22fb..208b8fb6a 100644
--- a/module/plugins/hoster/NetloadIn.py
+++ b/module/plugins/hoster/NetloadIn.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class NetloadIn(DeadHoster):
__name__ = "NetloadIn"
__type__ = "hoster"
- __version__ = "0.50"
+ __version__ = "0.51"
__pattern__ = r'https?://(?:www\.)?netload\.(in|me)/(?P<PATH>datei|index\.php\?id=10&file_id=)(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/NitroflareCom.py b/module/plugins/hoster/NitroflareCom.py
index efd54dd62..f60a9c2e2 100644
--- a/module/plugins/hoster/NitroflareCom.py
+++ b/module/plugins/hoster/NitroflareCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster
class NitroflareCom(SimpleHoster):
__name__ = "NitroflareCom"
__type__ = "hoster"
- __version__ = "0.14"
+ __version__ = "0.15"
__pattern__ = r'https?://(?:www\.)?nitroflare\.com/view/(?P<ID>[\w^_]+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -31,7 +31,7 @@ class NitroflareCom(SimpleHoster):
# ERROR_PATTERN = r'downloading is not possible'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: used here to load the cookies which will be required later
self.load(pyfile.url, post={'goToFreePage': ""})
@@ -39,7 +39,7 @@ class NitroflareCom(SimpleHoster):
self.html = self.load("http://nitroflare.com/ajax/freeDownload.php",
post={'method': "startTimer", 'fileId': self.info['pattern']['ID']})
- self.checkErrors()
+ self.check_errors()
try:
js_file = self.load("http://nitroflare.com/js/downloadFree.js?v=1.0.1")
@@ -59,4 +59,4 @@ class NitroflareCom(SimpleHoster):
'recaptcha_challenge_field': challenge,
'recaptcha_response_field' : response})
- return super(NitroflareCom, self).handleFree(pyfile)
+ return super(NitroflareCom, self).handle_free(pyfile)
diff --git a/module/plugins/hoster/NoPremiumPl.py b/module/plugins/hoster/NoPremiumPl.py
index e300194a6..9e935cd08 100644
--- a/module/plugins/hoster/NoPremiumPl.py
+++ b/module/plugins/hoster/NoPremiumPl.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster
class NoPremiumPl(MultiHoster):
__name__ = "NoPremiumPl"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://direct\.nopremium\.pl.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -44,7 +44,7 @@ class NoPremiumPl(MultiHoster):
self.pwd = data['pwd']
- def runFileQuery(self, url, mode=None):
+ def run_file_query(self, url, mode=None):
query = self.API_QUERY.copy()
query['username'] = self.usr
@@ -55,27 +55,27 @@ class NoPremiumPl(MultiHoster):
query['check'] = 2
query['loc'] = 1
- self.logDebug(query)
+ self.log_debug(query)
return self.load(self.API_URL, post=query)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
try:
- data = self.runFileQuery(pyfile.url, 'fileinfo')
+ data = self.run_file_query(pyfile.url, 'fileinfo')
except Exception:
- self.logDebug("runFileQuery error")
- self.tempOffline()
+ self.log_debug("runFileQuery error")
+ self.temp_offline()
try:
parsed = json_loads(data)
except Exception:
- self.logDebug("loads error")
- self.tempOffline()
+ self.log_debug("loads error")
+ self.temp_offline()
- self.logDebug(parsed)
+ self.log_debug(parsed)
if "errno" in parsed.keys():
if parsed['errno'] in self.ERROR_CODES:
@@ -98,8 +98,8 @@ class NoPremiumPl(MultiHoster):
pyfile.size = parsed['filesize']
try:
- self.link = self.runFileQuery(pyfile.url, 'filedownload')
+ self.link = self.run_file_query(pyfile.url, 'filedownload')
except Exception:
- self.logDebug("runFileQuery error #2")
- self.tempOffline()
+ self.log_debug("runFileQuery error #2")
+ self.temp_offline()
diff --git a/module/plugins/hoster/NosuploadCom.py b/module/plugins/hoster/NosuploadCom.py
index 4f3f34ddb..922fd7654 100644
--- a/module/plugins/hoster/NosuploadCom.py
+++ b/module/plugins/hoster/NosuploadCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class NosuploadCom(XFSHoster):
__name__ = "NosuploadCom"
__type__ = "hoster"
- __version__ = "0.31"
+ __version__ = "0.32"
__pattern__ = r'http://(?:www\.)?nosupload\.com/\?d=\w{12}'
@@ -23,15 +23,15 @@ class NosuploadCom(XFSHoster):
WAIT_PATTERN = r'Please wait.*?>(\d+)</span>'
- def getDownloadLink(self):
+ def get_download_link(self):
#: stage1: press the "Free Download" button
- data = self.getPostParameters()
+ data = self.get_post_parameters()
self.html = self.load(self.pyfile.url, post=data)
#: stage2: wait some time and press the "Download File" button
- data = self.getPostParameters()
+ data = self.get_post_parameters()
wait_time = re.search(self.WAIT_PATTERN, self.html, re.M | re.S).group(1)
- self.logDebug("Hoster told us to wait %s seconds" % wait_time)
+ self.log_debug("Hoster told us to wait %s seconds" % wait_time)
self.wait(wait_time)
self.html = self.load(self.pyfile.url, post=data)
diff --git a/module/plugins/hoster/NovafileCom.py b/module/plugins/hoster/NovafileCom.py
index b00f71635..8de511ed5 100644
--- a/module/plugins/hoster/NovafileCom.py
+++ b/module/plugins/hoster/NovafileCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class NovafileCom(XFSHoster):
__name__ = "NovafileCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?novafile\.com/\w{12}'
diff --git a/module/plugins/hoster/NowDownloadSx.py b/module/plugins/hoster/NowDownloadSx.py
index 7be699ae4..ef43c7c94 100644
--- a/module/plugins/hoster/NowDownloadSx.py
+++ b/module/plugins/hoster/NowDownloadSx.py
@@ -9,7 +9,7 @@ from module.utils import fixup
class NowDownloadSx(SimpleHoster):
__name__ = "NowDownloadSx"
__type__ = "hoster"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'http://(?:www\.)?(nowdownload\.[a-zA-Z]{2,}/(dl/|download\.php.+?id=|mobile/(#/files/|.+?id=))|likeupload\.org/)\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,12 +32,12 @@ class NowDownloadSx(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.chunkLimit = -1
+ self.resume_download = True
+ self.multi_dl = True
+ self.chunk_limit = -1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
tokenlink = re.search(self.TOKEN_PATTERN, self.html)
continuelink = re.search(self.CONTINUE_PATTERN, self.html)
if tokenlink is None or continuelink is None:
diff --git a/module/plugins/hoster/NowVideoSx.py b/module/plugins/hoster/NowVideoSx.py
index 477379597..849a35edd 100644
--- a/module/plugins/hoster/NowVideoSx.py
+++ b/module/plugins/hoster/NowVideoSx.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class NowVideoSx(SimpleHoster):
__name__ = "NowVideoSx"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?nowvideo\.[a-zA-Z]{2,}/(video/|mobile/(#/videos/|.+?id=))(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,11 +28,11 @@ class NowVideoSx(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load("http://www.nowvideo.sx/mobile/video.php", get={'id': self.info['pattern']['ID']})
m = re.search(self.LINK_FREE_PATTERN, self.html)
diff --git a/module/plugins/hoster/OboomCom.py b/module/plugins/hoster/OboomCom.py
index 4f845394a..fb42243c5 100644
--- a/module/plugins/hoster/OboomCom.py
+++ b/module/plugins/hoster/OboomCom.py
@@ -13,7 +13,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha
class OboomCom(Hoster):
__name__ = "OboomCom"
__type__ = "hoster"
- __version__ = "0.34"
+ __version__ = "0.35"
__pattern__ = r'https?://(?:www\.)?oboom\.com/(?:#(?:id=|/)?)?(?P<ID>\w{8})'
@@ -26,52 +26,52 @@ class OboomCom(Hoster):
def setup(self):
- self.chunkLimit = 1
- self.multiDL = self.resumeDownload = self.premium
+ self.chunk_limit = 1
+ self.multi_dl = self.resume_download = self.premium
def process(self, pyfile):
self.pyfile.url.replace(".com/#id=", ".com/#")
self.pyfile.url.replace(".com/#/", ".com/#")
self.html = self.load(pyfile.url)
- self.getFileId(self.pyfile.url)
- self.getSessionToken()
- self.getFileInfo(self.sessionToken, self.fileId)
- self.pyfile.name = self.fileName
- self.pyfile.size = self.fileSize
+ self.get_file_id(self.pyfile.url)
+ self.get_session_token()
+ self.getFileInfo(self.session_token, self.file_id)
+ self.pyfile.name = self.file_name
+ self.pyfile.size = self.file_size
if not self.premium:
- self.solveCaptcha()
- self.getDownloadTicket()
- self.download("https://%s/1.0/dlh" % self.downloadDomain, get={"ticket": self.downloadTicket, "http_errors": 0})
+ self.solve_captcha()
+ self.get_download_ticket()
+ self.download("https://%s/1.0/dlh" % self.download_domain, get={"ticket": self.download_ticket, "http_errors": 0})
- def loadUrl(self, url, get=None):
+ def load_url(self, url, get=None):
if get is None:
get = dict()
return json_loads(self.load(url, get))
- def getFileId(self, url):
- self.fileId = re.match(OboomCom.__pattern__, url).group('ID')
+ def get_file_id(self, url):
+ self.file_id = re.match(OboomCom.__pattern__, url).group('ID')
- def getSessionToken(self):
+ def get_session_token(self):
if self.premium:
accountInfo = self.account.getAccountInfo(self.user, True)
if "session" in accountInfo:
- self.sessionToken = accountInfo['session']
+ self.session_token = accountInfo['session']
else:
self.fail(_("Could not retrieve premium session"))
else:
apiUrl = "https://www.oboom.com/1.0/guestsession"
- result = self.loadUrl(apiUrl)
+ result = self.load_url(apiUrl)
if result[0] == 200:
- self.sessionToken = result[1]
+ self.session_token = result[1]
else:
self.fail(_("Could not retrieve token for guest session. Error code: %s") % result[0])
- def solveCaptcha(self):
+ def solve_captcha(self):
recaptcha = ReCaptcha(self)
for _i in xrange(5):
@@ -79,35 +79,35 @@ class OboomCom(Hoster):
apiUrl = "https://www.oboom.com/1.0/download/ticket"
params = {"recaptcha_challenge_field": challenge,
"recaptcha_response_field": response,
- "download_id": self.fileId,
- "token": self.sessionToken}
- result = self.loadUrl(apiUrl, params)
+ "download_id": self.file_id,
+ "token": self.session_token}
+ result = self.load_url(apiUrl, params)
if result[0] == 200:
- self.downloadToken = result[1]
- self.downloadAuth = result[2]
- self.correctCaptcha()
- self.setWait(30)
+ self.download_token = result[1]
+ self.download_auth = result[2]
+ self.correct_captcha()
+ self.set_wait(30)
self.wait()
break
elif result[0] == 400:
if result[1] == "incorrect-captcha-sol":
- self.invalidCaptcha()
+ self.invalid_captcha()
elif result[1] == "captcha-timeout":
- self.invalidCaptcha()
+ self.invalid_captcha()
elif result[1] == "forbidden":
self.retry(5, 15 * 60, _("Service unavailable"))
elif result[0] == 403:
if result[1] == -1: #: another download is running
- self.setWait(15 * 60)
+ self.set_wait(15 * 60)
else:
- self.setWait(result[1], True)
+ self.set_wait(result[1], True)
self.wait()
self.retry(5)
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.fail(_("Received invalid captcha 5 times"))
@@ -115,31 +115,31 @@ class OboomCom(Hoster):
apiUrl = "https://api.oboom.com/1.0/info"
params = {"token": token, "items": fileId, "http_errors": 0}
- result = self.loadUrl(apiUrl, params)
+ result = self.load_url(apiUrl, params)
if result[0] == 200:
item = result[1][0]
if item['state'] == "online":
- self.fileSize = item['size']
- self.fileName = item['name']
+ self.file_size = item['size']
+ self.file_name = item['name']
else:
self.offline()
else:
self.fail(_("Could not retrieve file info. Error code %s: %s") % (result[0], result[1]))
- def getDownloadTicket(self):
+ def get_download_ticket(self):
apiUrl = "https://api.oboom.com/1/dl"
- params = {"item": self.fileId, "http_errors": 0}
+ params = {"item": self.file_id, "http_errors": 0}
if self.premium:
- params['token'] = self.sessionToken
+ params['token'] = self.session_token
else:
- params['token'] = self.downloadToken
- params['auth'] = self.downloadAuth
+ params['token'] = self.download_token
+ params['auth'] = self.download_auth
- result = self.loadUrl(apiUrl, params)
+ result = self.load_url(apiUrl, params)
if result[0] == 200:
- self.downloadDomain = result[1]
- self.downloadTicket = result[2]
+ self.download_domain = result[1]
+ self.download_ticket = result[2]
elif result[0] == 421:
self.retry(wait_time=result[2] + 60, reason=_("Connection limit exceeded"))
else:
diff --git a/module/plugins/hoster/OneFichierCom.py b/module/plugins/hoster/OneFichierCom.py
index 4b947c554..5ea400b8d 100644
--- a/module/plugins/hoster/OneFichierCom.py
+++ b/module/plugins/hoster/OneFichierCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class OneFichierCom(SimpleHoster):
__name__ = "OneFichierCom"
__type__ = "hoster"
- __version__ = "0.84"
+ __version__ = "0.85"
__pattern__ = r'https?://(?:www\.)?(?:(?P<ID1>\w+)\.)?(?P<HOST>1fichier\.com|alterupload\.com|cjoint\.net|d(es)?fichiers\.com|dl4free\.com|megadl\.fr|mesfichiers\.org|piecejointe\.net|pjointe\.com|tenvoi\.com)(?:/\?(?P<ID2>\w+))?'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -36,26 +36,26 @@ class OneFichierCom(SimpleHoster):
def setup(self):
- self.multiDL = self.premium
- self.resumeDownload = True
+ self.multi_dl = self.premium
+ self.resume_download = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
id = self.info['pattern']['ID1'] or self.info['pattern']['ID2']
- url, inputs = self.parseHtmlForm('action="https://1fichier.com/\?%s' % id)
+ url, inputs = self.parse_html_form('action="https://1fichier.com/\?%s' % id)
if not url:
self.fail(_("Download link not found"))
if "pass" in inputs:
- inputs['pass'] = self.getPassword()
+ inputs['pass'] = self.get_password()
inputs['submit'] = "Download"
self.download(url, post=inputs)
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.download(pyfile.url, post={'dl': "Download", 'did': 0})
diff --git a/module/plugins/hoster/OpenloadIo.py b/module/plugins/hoster/OpenloadIo.py
index 5a60b6787..fbdb95383 100644
--- a/module/plugins/hoster/OpenloadIo.py
+++ b/module/plugins/hoster/OpenloadIo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class OpenloadIo(SimpleHoster):
__name__ = "OpenloadIo"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?openload\.io/f/\w{11}'
@@ -20,7 +20,7 @@ class OpenloadIo(SimpleHoster):
LINK_FREE_PATTERN = r'id="realdownload"><a href="(https?://[\w\.]+\.openload\.io/dl/.*?)"'
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
getInfo = create_getInfo(OpenloadIo)
diff --git a/module/plugins/hoster/OronCom.py b/module/plugins/hoster/OronCom.py
index 2e4961704..b3527e439 100644
--- a/module/plugins/hoster/OronCom.py
+++ b/module/plugins/hoster/OronCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class OronCom(DeadHoster):
__name__ = "OronCom"
__type__ = "hoster"
- __version__ = "0.14"
+ __version__ = "0.15"
__pattern__ = r'https?://(?:www\.)?oron\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/OverLoadMe.py b/module/plugins/hoster/OverLoadMe.py
index 944d4c664..ab0440a2e 100644
--- a/module/plugins/hoster/OverLoadMe.py
+++ b/module/plugins/hoster/OverLoadMe.py
@@ -11,7 +11,7 @@ from module.utils import parseFileSize
class OverLoadMe(MultiHoster):
__name__ = "OverLoadMe"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'https?://.*overload\.me/.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -23,10 +23,10 @@ class OverLoadMe(MultiHoster):
def setup(self):
- self.chunkLimit = 5
+ self.chunk_limit = 5
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
data = self.account.getAccountData(self.user)
page = self.load("https://api.over-load.me/getdownload.php",
get={'auth': data['password'],
@@ -34,11 +34,11 @@ class OverLoadMe(MultiHoster):
data = json_loads(page)
- self.logDebug(data)
+ self.log_debug(data)
if data['error'] == 1:
- self.logWarning(data['msg'])
- self.tempOffline()
+ self.log_warning(data['msg'])
+ self.temp_offline()
else:
self.link = data['downloadlink']
if pyfile.name and pyfile.name.endswith('.tmp') and data['filename']:
diff --git a/module/plugins/hoster/PandaplaNet.py b/module/plugins/hoster/PandaplaNet.py
index ae8406d82..3f088081e 100644
--- a/module/plugins/hoster/PandaplaNet.py
+++ b/module/plugins/hoster/PandaplaNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class PandaplaNet(DeadHoster):
__name__ = "PandaplaNet"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?pandapla\.net/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/PornhostCom.py b/module/plugins/hoster/PornhostCom.py
index 708abf40a..cf3d39f29 100644
--- a/module/plugins/hoster/PornhostCom.py
+++ b/module/plugins/hoster/PornhostCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster
class PornhostCom(Hoster):
__name__ = "PornhostCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?pornhost\.com/(\d+/\d+\.html|\d+)'
diff --git a/module/plugins/hoster/PornhubCom.py b/module/plugins/hoster/PornhubCom.py
index 92119df56..ad0eebb28 100644
--- a/module/plugins/hoster/PornhubCom.py
+++ b/module/plugins/hoster/PornhubCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster
class PornhubCom(Hoster):
__name__ = "PornhubCom"
__type__ = "hoster"
- __version__ = "0.51"
+ __version__ = "0.52"
__pattern__ = r'http://(?:www\.)?pornhub\.com/view_video\.php\?viewkey=\w+'
diff --git a/module/plugins/hoster/PotloadCom.py b/module/plugins/hoster/PotloadCom.py
index 5a41f7d3c..654ae8e1b 100644
--- a/module/plugins/hoster/PotloadCom.py
+++ b/module/plugins/hoster/PotloadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class PotloadCom(DeadHoster):
__name__ = "PotloadCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?potload\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/PremiumTo.py b/module/plugins/hoster/PremiumTo.py
index 082f17474..aeeef2847 100644
--- a/module/plugins/hoster/PremiumTo.py
+++ b/module/plugins/hoster/PremiumTo.py
@@ -11,7 +11,7 @@ from module.utils import fs_encode
class PremiumTo(MultiHoster):
__name__ = "PremiumTo"
__type__ = "hoster"
- __version__ = "0.24"
+ __version__ = "0.25"
__pattern__ = r'^unmatchable$'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -27,8 +27,8 @@ class PremiumTo(MultiHoster):
CHECK_TRAFFIC = True
- def handlePremium(self, pyfile):
- #raise timeout to 2min
+ def handle_premium(self, pyfile):
+ # raise timeout to 2min
self.download("http://premium.to/api/getfile.php",
get={'username': self.account.username,
'password': self.account.password,
@@ -36,14 +36,14 @@ class PremiumTo(MultiHoster):
disposition=True)
- def checkFile(self):
- if self.checkDownload({'nopremium': "No premium account available"}):
+ def check_file(self):
+ if self.check_download({'nopremium': "No premium account available"}):
self.retry(60, 5 * 60, "No premium account available")
err = ''
if self.req.http.code == '420':
#: Custom error code send - fail
- file = fs_encode(self.lastDownload)
+ file = fs_encode(self.last_download)
with open(file, "rb") as f:
err = f.read(256).strip()
os.remove(file)
diff --git a/module/plugins/hoster/PremiumizeMe.py b/module/plugins/hoster/PremiumizeMe.py
index bfd78853b..e87742839 100644
--- a/module/plugins/hoster/PremiumizeMe.py
+++ b/module/plugins/hoster/PremiumizeMe.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class PremiumizeMe(MultiHoster):
__name__ = "PremiumizeMe"
__type__ = "hoster"
- __version__ = "0.18"
+ __version__ = "0.19"
__pattern__ = r'^unmatchable$' #: Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -18,7 +18,7 @@ class PremiumizeMe(MultiHoster):
__authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
#: In some cases hostsers do not supply us with a filename at download, so we
#: are going to set a fall back filename (e.g. for freakshare or xfileshare)
pyfile.name = pyfile.name.split('/').pop() #: Remove everthing before last slash
@@ -53,7 +53,7 @@ class PremiumizeMe(MultiHoster):
self.offline()
elif status >= 500:
- self.tempOffline()
+ self.temp_offline()
else:
self.fail(data['statusmessage'])
diff --git a/module/plugins/hoster/PromptfileCom.py b/module/plugins/hoster/PromptfileCom.py
index c6878cbb0..ddfce8e19 100644
--- a/module/plugins/hoster/PromptfileCom.py
+++ b/module/plugins/hoster/PromptfileCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class PromptfileCom(SimpleHoster):
__name__ = "PromptfileCom"
__type__ = "hoster"
- __version__ = "0.13"
+ __version__ = "0.14"
__pattern__ = r'https?://(?:www\.)?promptfile\.com/'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -25,20 +25,20 @@ class PromptfileCom(SimpleHoster):
LINK_FREE_PATTERN = r'<a href=\"(.+)\" target=\"_blank\" class=\"view_dl_link\">Download File</a>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
# STAGE 1: get link to continue
m = re.search(self.CHASH_PATTERN, self.html)
if m is None:
self.error(_("CHASH_PATTERN not found"))
chash = m.group(1)
- self.logDebug("Read chash %s" % chash)
+ self.log_debug("Read chash %s" % chash)
#: continue to stage2
self.html = self.load(pyfile.url, post={'chash': chash})
# STAGE 2: get the direct link
- return super(PromptfileCom, self).handleFree(pyfile)
+ return super(PromptfileCom, self).handle_free(pyfile)
getInfo = create_getInfo(PromptfileCom)
diff --git a/module/plugins/hoster/PrzeklejPl.py b/module/plugins/hoster/PrzeklejPl.py
index e984d0033..591428757 100644
--- a/module/plugins/hoster/PrzeklejPl.py
+++ b/module/plugins/hoster/PrzeklejPl.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class PrzeklejPl(DeadHoster):
__name__ = "PrzeklejPl"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?przeklej\.pl/plik/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/PutdriveCom.py b/module/plugins/hoster/PutdriveCom.py
index 7f4b7b6cc..a04b43cdb 100644
--- a/module/plugins/hoster/PutdriveCom.py
+++ b/module/plugins/hoster/PutdriveCom.py
@@ -6,7 +6,7 @@ from module.plugins.hoster.ZeveraCom import ZeveraCom
class PutdriveCom(ZeveraCom):
__name__ = "PutdriveCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)putdrive\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+'
diff --git a/module/plugins/hoster/QuickshareCz.py b/module/plugins/hoster/QuickshareCz.py
index 26bb1e2df..e9cfdb085 100644
--- a/module/plugins/hoster/QuickshareCz.py
+++ b/module/plugins/hoster/QuickshareCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class QuickshareCz(SimpleHoster):
__name__ = "QuickshareCz"
__type__ = "hoster"
- __version__ = "0.56"
+ __version__ = "0.57"
__pattern__ = r'http://(?:[^/]*\.)?quickshare\.cz/stahnout-soubor/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -30,34 +30,34 @@ class QuickshareCz(SimpleHoster):
#: parse js variables
self.jsvars = dict((x, y.strip("'")) for x, y in re.findall(r"var (\w+) = ([\d.]+|'.+?')", self.html))
- self.logDebug(self.jsvars)
+ self.log_debug(self.jsvars)
pyfile.name = self.jsvars['ID3']
#: determine download type - free or premium
if self.premium:
if 'UU_prihlasen' in self.jsvars:
if self.jsvars['UU_prihlasen'] == '0':
- self.logWarning(_("User not logged in"))
+ self.log_warning(_("User not logged in"))
self.relogin(self.user)
self.retry()
elif float(self.jsvars['UU_kredit']) < float(self.jsvars['kredit_odecet']):
- self.logWarning(_("Not enough credit left"))
+ self.log_warning(_("Not enough credit left"))
self.premium = False
if self.premium:
- self.handlePremium(pyfile)
+ self.handle_premium(pyfile)
else:
- self.handleFree(pyfile)
+ self.handle_free(pyfile)
- if self.checkDownload({"error": re.compile(r"\AChyba!")}, max_size=100):
+ if self.check_download({"error": re.compile(r"\AChyba!")}, max_size=100):
self.fail(_("File not m or plugin defect"))
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: get download url
download_url = '%s/download.php' % self.jsvars['server']
data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ("ID1", "ID2", "ID3", "ID4"))
- self.logDebug("FREE URL1:" + download_url, data)
+ self.log_debug("FREE URL1:" + download_url, data)
self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)
self.load(download_url, post=data)
@@ -69,7 +69,7 @@ class QuickshareCz(SimpleHoster):
self.fail(_("File not found"))
self.link = m.group(1).rstrip() #@TODO: Remove .rstrip() in 0.4.10
- self.logDebug("FREE URL2:" + self.link)
+ self.log_debug("FREE URL2:" + self.link)
#: check errors
m = re.search(r'/chyba/(\d+)', self.link)
@@ -82,7 +82,7 @@ class QuickshareCz(SimpleHoster):
self.fail(_("Error %d") % m.group(1))
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
download_url = '%s/download_premium.php' % self.jsvars['server']
data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ("ID1", "ID2", "ID4", "ID5"))
self.download(download_url, get=data)
diff --git a/module/plugins/hoster/RPNetBiz.py b/module/plugins/hoster/RPNetBiz.py
index 2e6271ac6..a548e1670 100644
--- a/module/plugins/hoster/RPNetBiz.py
+++ b/module/plugins/hoster/RPNetBiz.py
@@ -9,7 +9,7 @@ from module.common.json_layer import json_loads
class RPNetBiz(MultiHoster):
__name__ = "RPNetBiz"
__type__ = "hoster"
- __version__ = "0.15"
+ __version__ = "0.16"
__pattern__ = r'https?://.+rpnet\.biz'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -21,10 +21,10 @@ class RPNetBiz(MultiHoster):
def setup(self):
- self.chunkLimit = -1
+ self.chunk_limit = -1
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
user, data = self.account.selectAccount()
#: Get the download link
@@ -34,36 +34,36 @@ class RPNetBiz(MultiHoster):
"action" : "generate",
"links" : pyfile.url})
- self.logDebug("JSON data: %s" % res)
+ self.log_debug("JSON data: %s" % res)
link_status = json_loads(res)['links'][0] #: get the first link... since we only queried one
#: Check if we only have an id as a HDD link
if 'id' in link_status:
- self.logDebug("Need to wait at least 30 seconds before requery")
- self.setWait(30) #: wait for 30 seconds
+ self.log_debug("Need to wait at least 30 seconds before requery")
+ self.set_wait(30) #: wait for 30 seconds
self.wait()
#: Lets query the server again asking for the status on the link,
#: we need to keep doing this until we reach 100
max_tries = 30
my_try = 0
while (my_try <= max_tries):
- self.logDebug("Try: %d ; Max Tries: %d" % (my_try, max_tries))
+ self.log_debug("Try: %d ; Max Tries: %d" % (my_try, max_tries))
res = self.load("https://premium.rpnet.biz/client_api.php",
get={"username": user,
"password": data['password'],
"action": "downloadInformation",
"id": link_status['id']})
- self.logDebug("JSON data hdd query: %s" % res)
+ self.log_debug("JSON data hdd query: %s" % res)
download_status = json_loads(res)['download']
if download_status['status'] == '100':
link_status['generated'] = download_status['rpnet_link']
- self.logDebug("Successfully downloaded to rpnet HDD: %s" % link_status['generated'])
+ self.log_debug("Successfully downloaded to rpnet HDD: %s" % link_status['generated'])
break
else:
- self.logDebug("At %s%% for the file download" % download_status['status'])
+ self.log_debug("At %s%% for the file download" % download_status['status'])
- self.setWait(30)
+ self.set_wait(30)
self.wait()
my_try += 1
diff --git a/module/plugins/hoster/RapideoPl.py b/module/plugins/hoster/RapideoPl.py
index dc6e9253e..a9a0b354a 100644
--- a/module/plugins/hoster/RapideoPl.py
+++ b/module/plugins/hoster/RapideoPl.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster
class RapideoPl(MultiHoster):
__name__ = "RapideoPl"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'^unmatchable$'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -44,7 +44,7 @@ class RapideoPl(MultiHoster):
self.pwd = data['pwd']
- def runFileQuery(self, url, mode=None):
+ def run_file_query(self, url, mode=None):
query = self.API_QUERY.copy()
query['username'] = self.usr
@@ -55,27 +55,27 @@ class RapideoPl(MultiHoster):
query['check'] = 2
query['loc'] = 1
- self.logDebug(query)
+ self.log_debug(query)
return self.load(self.API_URL, post=query)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
try:
- data = self.runFileQuery(pyfile.url, 'fileinfo')
+ data = self.run_file_query(pyfile.url, 'fileinfo')
except Exception:
- self.logDebug("RunFileQuery error")
- self.tempOffline()
+ self.log_debug("RunFileQuery error")
+ self.temp_offline()
try:
parsed = json_loads(data)
except Exception:
- self.logDebug("Loads error")
- self.tempOffline()
+ self.log_debug("Loads error")
+ self.temp_offline()
- self.logDebug(parsed)
+ self.log_debug(parsed)
if "errno" in parsed.keys():
if parsed['errno'] in self.ERROR_CODES:
@@ -98,8 +98,8 @@ class RapideoPl(MultiHoster):
pyfile.size = parsed['filesize']
try:
- self.link = self.runFileQuery(pyfile.url, 'filedownload')
+ self.link = self.run_file_query(pyfile.url, 'filedownload')
except Exception:
- self.logDebug("runFileQuery error #2")
- self.tempOffline()
+ self.log_debug("runFileQuery error #2")
+ self.temp_offline()
diff --git a/module/plugins/hoster/RapidfileshareNet.py b/module/plugins/hoster/RapidfileshareNet.py
index 0bbaed57f..b10cf9aff 100644
--- a/module/plugins/hoster/RapidfileshareNet.py
+++ b/module/plugins/hoster/RapidfileshareNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class RapidfileshareNet(XFSHoster):
__name__ = "RapidfileshareNet"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?rapidfileshare\.net/\w{12}'
diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py
index e5298726c..b2962af10 100644
--- a/module/plugins/hoster/RapidgatorNet.py
+++ b/module/plugins/hoster/RapidgatorNet.py
@@ -14,7 +14,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class RapidgatorNet(SimpleHoster):
__name__ = "RapidgatorNet"
__type__ = "hoster"
- __version__ = "0.34"
+ __version__ = "0.35"
__pattern__ = r'http://(?:www\.)?(rapidgator\.net|rg\.to)/file/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -57,8 +57,8 @@ class RapidgatorNet(SimpleHoster):
if self.sid:
self.premium = True
- self.resumeDownload = self.multiDL = self.premium
- self.chunkLimit = 1
+ self.resume_download = self.multi_dl = self.premium
+ self.chunk_limit = 1
def api_response(self, cmd):
@@ -66,13 +66,13 @@ class RapidgatorNet(SimpleHoster):
json = self.load('%s/%s' % (self.API_URL, cmd),
get={'sid': self.sid,
'url': self.pyfile.url})
- self.logDebug("API:%s" % cmd, json, "SID: %s" % self.sid)
+ self.log_debug("API:%s" % cmd, json, "SID: %s" % self.sid)
json = json_loads(json)
status = json['response_status']
msg = json['response_details']
except BadHeader, e:
- self.logError("API: %s" % cmd, e, "SID: %s" % self.sid)
+ self.log_error("API: %s" % cmd, e, "SID: %s" % self.sid)
status = e.code
msg = e
@@ -88,7 +88,7 @@ class RapidgatorNet(SimpleHoster):
self.retry(wait_time=60)
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.api_data = self.api_response('info')
self.api_data['md5'] = self.api_data['hash']
@@ -98,22 +98,22 @@ class RapidgatorNet(SimpleHoster):
self.link = self.api_response('download')['url']
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
jsvars = dict(re.findall(self.JSVARS_PATTERN, self.html))
- self.logDebug(jsvars)
+ self.log_debug(jsvars)
self.req.http.lastURL = pyfile.url
self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])
url = "http://rapidgator.net%s?fid=%s" % (
jsvars.get('startTimerUrl', '/download/AjaxStartTimer'), jsvars['fid'])
- jsvars.update(self.getJsonResponse(url))
+ jsvars.update(self.get_json_response(url))
self.wait(jsvars.get('secs', 45), False)
url = "http://rapidgator.net%s?sid=%s" % (
jsvars.get('getDownloadUrl', '/download/AjaxGetDownload'), jsvars['sid'])
- jsvars.update(self.getJsonResponse(url))
+ jsvars.update(self.get_json_response(url))
self.req.http.lastURL = pyfile.url
self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"])
@@ -127,7 +127,7 @@ class RapidgatorNet(SimpleHoster):
self.link = m.group(1)
break
else:
- captcha = self.handleCaptcha()
+ captcha = self.handle_captcha()
if not captcha:
self.error(_("Captcha pattern not found"))
@@ -139,25 +139,25 @@ class RapidgatorNet(SimpleHoster):
'adcopy_response' : response})
if "The verification code is incorrect" in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.correctCaptcha()
+ self.correct_captcha()
else:
self.error(_("Download link"))
- def handleCaptcha(self):
+ def handle_captcha(self):
for klass in (AdsCaptcha, ReCaptcha, SolveMedia):
inst = klass(self)
if inst.detect_key():
return inst
- def getJsonResponse(self, url):
+ def get_json_response(self, url):
res = self.load(url)
if not res.startswith('{'):
self.retry()
- self.logDebug(url, res)
+ self.log_debug(url, res)
return json_loads(res)
diff --git a/module/plugins/hoster/RapiduNet.py b/module/plugins/hoster/RapiduNet.py
index f2f1abfb7..30e453b93 100644
--- a/module/plugins/hoster/RapiduNet.py
+++ b/module/plugins/hoster/RapiduNet.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class RapiduNet(SimpleHoster):
__name__ = "RapiduNet"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'https?://(?:www\.)?rapidu\.net/(?P<ID>\d{10})'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -33,22 +33,22 @@ class RapiduNet(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = self.premium
+ self.resume_download = True
+ self.multi_dl = self.premium
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.req.http.lastURL = pyfile.url
self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])
- jsvars = self.getJsonResponse("https://rapidu.net/ajax.php",
+ jsvars = self.get_json_response("https://rapidu.net/ajax.php",
get={'a': "getLoadTimeToDownload"},
post={'_go': ""})
if str(jsvars['timeToDownload']) is "stop":
t = (24 * 60 * 60) - (int(time.time()) % (24 * 60 * 60)) + time.altzone
- self.logInfo("You've reach your daily download transfer")
+ self.log_info("You've reach your daily download transfer")
self.retry(10, 10 if t < 1 else None, _("Try tomorrow again")) #@NOTE: check t in case of not synchronised clock
@@ -58,7 +58,7 @@ class RapiduNet(SimpleHoster):
recaptcha = ReCaptcha(self)
response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)
- jsvars = self.getJsonResponse("https://rapidu.net/ajax.php",
+ jsvars = self.get_json_response("https://rapidu.net/ajax.php",
get={'a': "getCheckCaptcha"},
post={'_go' : "",
'captcha1': challenge,
@@ -69,12 +69,12 @@ class RapiduNet(SimpleHoster):
self.link = jsvars['url']
- def getJsonResponse(self, *args, **kwargs):
+ def get_json_response(self, *args, **kwargs):
res = self.load(*args, **kwargs)
if not res.startswith('{'):
self.retry()
- self.logDebug(res)
+ self.log_debug(res)
return json_loads(res)
diff --git a/module/plugins/hoster/RarefileNet.py b/module/plugins/hoster/RarefileNet.py
index a45e4ed4d..e3ac29b7d 100644
--- a/module/plugins/hoster/RarefileNet.py
+++ b/module/plugins/hoster/RarefileNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class RarefileNet(XFSHoster):
__name__ = "RarefileNet"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'http://(?:www\.)?rarefile\.net/\w{12}'
diff --git a/module/plugins/hoster/RealdebridCom.py b/module/plugins/hoster/RealdebridCom.py
index 54cd54008..812598f77 100644
--- a/module/plugins/hoster/RealdebridCom.py
+++ b/module/plugins/hoster/RealdebridCom.py
@@ -12,7 +12,7 @@ from module.utils import parseFileSize
class RealdebridCom(MultiHoster):
__name__ = "RealdebridCom"
__type__ = "hoster"
- __version__ = "0.68"
+ __version__ = "0.69"
__pattern__ = r'https?://((?:www\.|s\d+\.)?real-debrid\.com/dl/|[\w^_]\.rdb\.so/d/)[\w^_]+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -24,24 +24,24 @@ class RealdebridCom(MultiHoster):
def setup(self):
- self.chunkLimit = 3
+ self.chunk_limit = 3
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
data = json_loads(self.load("https://real-debrid.com/ajax/unrestrict.php",
get={'lang' : "en",
'link' : pyfile.url,
- 'password': self.getPassword(),
+ 'password': self.get_password(),
'time' : int(time.time() * 1000)}))
- self.logDebug("Returned Data: %s" % data)
+ self.log_debug("Returned Data: %s" % data)
if data['error'] != 0:
if data['message'] == "Your file is unavailable on the hoster.":
self.offline()
else:
- self.logWarning(data['message'])
- self.tempOffline()
+ self.log_warning(data['message'])
+ self.temp_offline()
else:
if pyfile.name and pyfile.name.endswith('.tmp') and data['file_name']:
pyfile.name = data['file_name']
diff --git a/module/plugins/hoster/RedtubeCom.py b/module/plugins/hoster/RedtubeCom.py
index 15ce3b2b1..43647b8cf 100644
--- a/module/plugins/hoster/RedtubeCom.py
+++ b/module/plugins/hoster/RedtubeCom.py
@@ -9,7 +9,7 @@ from module.utils import html_unescape
class RedtubeCom(Hoster):
__name__ = "RedtubeCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?redtube\.com/\d+'
diff --git a/module/plugins/hoster/RehostTo.py b/module/plugins/hoster/RehostTo.py
index 54778ef00..f3a011067 100644
--- a/module/plugins/hoster/RehostTo.py
+++ b/module/plugins/hoster/RehostTo.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class RehostTo(MultiHoster):
__name__ = "RehostTo"
__type__ = "hoster"
- __version__ = "0.22"
+ __version__ = "0.23"
__pattern__ = r'https?://.*rehost\.to\..+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -19,7 +19,7 @@ class RehostTo(MultiHoster):
__authors__ = [("RaNaN", "RaNaN@pyload.org")]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.download("http://rehost.to/process_download.php",
get={'user': "cookie",
'pass': self.account.getAccountInfo(self.user)['session'],
diff --git a/module/plugins/hoster/RemixshareCom.py b/module/plugins/hoster/RemixshareCom.py
index d60101aed..78b88459b 100644
--- a/module/plugins/hoster/RemixshareCom.py
+++ b/module/plugins/hoster/RemixshareCom.py
@@ -16,7 +16,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class RemixshareCom(SimpleHoster):
__name__ = "RemixshareCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://remixshare\.com/(download|dl)/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -39,11 +39,11 @@ class RemixshareCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
b = re.search(self.LINK_PATTERN, self.html)
if not b:
self.error(_("File url"))
diff --git a/module/plugins/hoster/RgHostNet.py b/module/plugins/hoster/RgHostNet.py
index 1a45def44..bc6f4f9ce 100644
--- a/module/plugins/hoster/RgHostNet.py
+++ b/module/plugins/hoster/RgHostNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class RgHostNet(SimpleHoster):
__name__ = "RgHostNet"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?rghost\.(net|ru)/[\d-]+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
diff --git a/module/plugins/hoster/SafesharingEu.py b/module/plugins/hoster/SafesharingEu.py
index 08612e413..cfea37016 100644
--- a/module/plugins/hoster/SafesharingEu.py
+++ b/module/plugins/hoster/SafesharingEu.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class SafesharingEu(XFSHoster):
__name__ = "SafesharingEu"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?safesharing\.eu/\w{12}'
diff --git a/module/plugins/hoster/SecureUploadEu.py b/module/plugins/hoster/SecureUploadEu.py
index 6bfbce328..80892932e 100644
--- a/module/plugins/hoster/SecureUploadEu.py
+++ b/module/plugins/hoster/SecureUploadEu.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class SecureUploadEu(XFSHoster):
__name__ = "SecureUploadEu"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?secureupload\.eu/\w{12}'
diff --git a/module/plugins/hoster/SendspaceCom.py b/module/plugins/hoster/SendspaceCom.py
index 0ab20949d..e645bb604 100644
--- a/module/plugins/hoster/SendspaceCom.py
+++ b/module/plugins/hoster/SendspaceCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class SendspaceCom(SimpleHoster):
__name__ = "SendspaceCom"
__type__ = "hoster"
- __version__ = "0.17"
+ __version__ = "0.18"
__pattern__ = r'https?://(?:www\.)?sendspace\.com/file/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,30 +28,30 @@ class SendspaceCom(SimpleHoster):
USER_CAPTCHA_PATTERN = r'<td><img src="/captchas/captcha\.php?user=(.+?))"></td>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
params = {}
for _i in xrange(3):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m:
if 'captcha_hash' in params:
- self.correctCaptcha()
+ self.correct_captcha()
self.link = m.group(1)
break
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m:
if 'captcha_hash' in params:
- self.invalidCaptcha()
+ self.invalid_captcha()
captcha_url1 = "http://www.sendspace.com/" + m.group(1)
m = re.search(self.USER_CAPTCHA_PATTERN, self.html)
captcha_url2 = "http://www.sendspace.com/" + m.group(1)
params = {'captcha_hash': m.group(2),
'captcha_submit': 'Verify',
- 'captcha_answer': self.decryptCaptcha(captcha_url1) + " " + self.decryptCaptcha(captcha_url2)}
+ 'captcha_answer': self.decrypt_captcha(captcha_url1) + " " + self.decrypt_captcha(captcha_url2)}
else:
params = {'download': "Regular Download"}
- self.logDebug(params)
+ self.log_debug(params)
self.html = self.load(pyfile.url, post=params)
else:
self.fail(_("Download link not found"))
diff --git a/module/plugins/hoster/Share4WebCom.py b/module/plugins/hoster/Share4WebCom.py
index 7a276c1fe..5d9c8ea97 100644
--- a/module/plugins/hoster/Share4WebCom.py
+++ b/module/plugins/hoster/Share4WebCom.py
@@ -7,7 +7,7 @@ from module.plugins.internal.SimpleHoster import create_getInfo
class Share4WebCom(UnibytesCom):
__name__ = "Share4WebCom"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'https?://(?:www\.)?share4web\.com/get/\w+'
diff --git a/module/plugins/hoster/Share76Com.py b/module/plugins/hoster/Share76Com.py
index 4a4af1672..510adaf49 100644
--- a/module/plugins/hoster/Share76Com.py
+++ b/module/plugins/hoster/Share76Com.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class Share76Com(DeadHoster):
__name__ = "Share76Com"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?share76\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/ShareFilesCo.py b/module/plugins/hoster/ShareFilesCo.py
index d9a71d786..288cd08e4 100644
--- a/module/plugins/hoster/ShareFilesCo.py
+++ b/module/plugins/hoster/ShareFilesCo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class ShareFilesCo(DeadHoster):
__name__ = "ShareFilesCo"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?sharefiles\.co/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/SharebeesCom.py b/module/plugins/hoster/SharebeesCom.py
index 9387483cc..c0846d23c 100644
--- a/module/plugins/hoster/SharebeesCom.py
+++ b/module/plugins/hoster/SharebeesCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class SharebeesCom(DeadHoster):
__name__ = "SharebeesCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?sharebees\.com/\w{12}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py
index 47b6ba7da..2134ec7e6 100644
--- a/module/plugins/hoster/ShareonlineBiz.py
+++ b/module/plugins/hoster/ShareonlineBiz.py
@@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class ShareonlineBiz(SimpleHoster):
__name__ = "ShareonlineBiz"
__type__ = "hoster"
- __version__ = "0.53"
+ __version__ = "0.54"
__pattern__ = r'https?://(?:www\.)?(share-online\.biz|egoshare\.com)/(download\.php\?id=|dl/)(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -36,8 +36,8 @@ class ShareonlineBiz(SimpleHoster):
@classmethod
- def apiInfo(cls, url):
- info = super(ShareonlineBiz, cls).apiInfo(url)
+ def api_info(cls, url):
+ info = super(ShareonlineBiz, cls).api_info(url)
field = getURL("http://api.share-online.biz/linkcheck.php",
get={'md5' : "1",
@@ -61,42 +61,42 @@ class ShareonlineBiz(SimpleHoster):
def setup(self):
- self.resumeDownload = self.premium
- self.multiDL = False
+ self.resume_download = self.premium
+ self.multi_dl = False
- def handleCaptcha(self):
+ def handle_captcha(self):
recaptcha = ReCaptcha(self)
for _i in xrange(5):
response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)
m = re.search(r'var wait=(\d+);', self.html)
- self.setWait(int(m.group(1)) if m else 30)
+ self.set_wait(int(m.group(1)) if m else 30)
res = self.load("%s/free/captcha/%d" % (self.pyfile.url, int(time.time() * 1000)),
post={'dl_free' : "1",
'recaptcha_challenge_field': challenge,
'recaptcha_response_field' : response})
if not res == '0':
- self.correctCaptcha()
+ self.correct_captcha()
return res
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
self.fail(_("No valid captcha solution received"))
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.wait(3)
self.html = self.load("%s/free/" % pyfile.url,
post={'dl_free': "1", 'choice': "free"})
- self.checkErrors()
+ self.check_errors()
- res = self.handleCaptcha()
+ res = self.handle_captcha()
self.link = res.decode('base64')
if not self.link.startswith("http://"):
@@ -105,22 +105,22 @@ class ShareonlineBiz(SimpleHoster):
self.wait()
- def checkFile(self):
- check = self.checkDownload({'cookie': re.compile(r'<div id="dl_failure"'),
+ def check_file(self):
+ check = self.check_download({'cookie': re.compile(r'<div id="dl_failure"'),
'fail' : re.compile(r"<title>Share-Online")})
if check == "cookie":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(5, 60, _("Cookie failure"))
elif check == "fail":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(5, 5 * 60, _("Download failed"))
return super(ShareonlineBiz, self).checkFile()
- def handlePremium(self, pyfile): #: should be working better loading (account) api internally
+ def handle_premium(self, pyfile): #: should be working better loading (account) api internally
html = self.load("http://api.share-online.biz/account.php",
get={'username': self.user,
'password': self.account.getAccountData(self.user)['password'],
@@ -133,7 +133,7 @@ class ShareonlineBiz(SimpleHoster):
key, value = line.split(": ")
dlinfo[key.lower()] = value
- self.logDebug(dlinfo)
+ self.log_debug(dlinfo)
if not dlinfo['status'] == "online":
self.offline()
@@ -144,12 +144,12 @@ class ShareonlineBiz(SimpleHoster):
self.link = dlinfo['url']
if self.link == "server_under_maintenance":
- self.tempOffline()
+ self.temp_offline()
else:
- self.multiDL = True
+ self.multi_dl = True
- def checkErrors(self):
+ def check_errors(self):
m = re.search(r"/failure/(.*?)/1", self.req.lastEffectiveURL)
if m is None:
self.info.pop('error', None)
@@ -158,9 +158,9 @@ class ShareonlineBiz(SimpleHoster):
errmsg = m.group(1).lower()
try:
- self.logError(errmsg, re.search(self.ERROR_PATTERN, self.html).group(1))
+ self.log_error(errmsg, re.search(self.ERROR_PATTERN, self.html).group(1))
except Exception:
- self.logError("Unknown error occurred", errmsg)
+ self.log_error("Unknown error occurred", errmsg)
if errmsg is "invalid":
self.fail(_("File not available"))
@@ -172,11 +172,11 @@ class ShareonlineBiz(SimpleHoster):
self.retry(wait_time=600, reason=errmsg)
elif 'slot' in errmsg:
- self.wantReconnect = True
+ self.want_reconnect = True
self.retry(24, 3600, errmsg)
else:
- self.wantReconnect = True
+ self.want_reconnect = True
self.retry(wait_time=60, reason=errmsg)
diff --git a/module/plugins/hoster/ShareplaceCom.py b/module/plugins/hoster/ShareplaceCom.py
index 815f54c79..d917e3f35 100644
--- a/module/plugins/hoster/ShareplaceCom.py
+++ b/module/plugins/hoster/ShareplaceCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster
class ShareplaceCom(Hoster):
__name__ = "ShareplaceCom"
__type__ = "hoster"
- __version__ = "0.13"
+ __version__ = "0.14"
__pattern__ = r'http://(?:www\.)?shareplace\.(com|org)/\?\w+'
@@ -31,7 +31,7 @@ class ShareplaceCom(Hoster):
self.pyfile.name = self.get_file_name()
wait_time = self.get_waiting_time()
- self.setWait(wait_time)
+ self.set_wait(wait_time)
self.wait()
@@ -64,7 +64,7 @@ class ShareplaceCom(Hoster):
url = urllib.unquote(
url.replace("http://http:/", "").replace("vvvvvvvvv", "").replace("lllllllll", "").replace(
"teletubbies", ""))
- self.logDebug("URL: %s" % url)
+ self.log_debug("URL: %s" % url)
return url
else:
self.error(_("Absolute filepath not found"))
diff --git a/module/plugins/hoster/SharingmatrixCom.py b/module/plugins/hoster/SharingmatrixCom.py
index 3958ebbd6..5f52849bb 100644
--- a/module/plugins/hoster/SharingmatrixCom.py
+++ b/module/plugins/hoster/SharingmatrixCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class SharingmatrixCom(DeadHoster):
__name__ = "SharingmatrixCom"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?sharingmatrix\.com/file/\w+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/ShragleCom.py b/module/plugins/hoster/ShragleCom.py
index 689223322..d98ee08ff 100644
--- a/module/plugins/hoster/ShragleCom.py
+++ b/module/plugins/hoster/ShragleCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class ShragleCom(DeadHoster):
__name__ = "ShragleCom"
__type__ = "hoster"
- __version__ = "0.22"
+ __version__ = "0.23"
__pattern__ = r'http://(?:www\.)?(cloudnator|shragle)\.com/files/(?P<ID>.+?)/'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/SimplyPremiumCom.py b/module/plugins/hoster/SimplyPremiumCom.py
index 8ea121199..f726b0bf9 100644
--- a/module/plugins/hoster/SimplyPremiumCom.py
+++ b/module/plugins/hoster/SimplyPremiumCom.py
@@ -3,13 +3,13 @@
import re
from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
-from module.plugins.internal.SimpleHoster import secondsToMidnight
+from module.plugins.internal.SimpleHoster import seconds_to_midnight
class SimplyPremiumCom(MultiHoster):
__name__ = "SimplyPremiumCom"
__type__ = "hoster"
- __version__ = "0.09"
+ __version__ = "0.10"
__pattern__ = r'https?://.+simply-premium\.com'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -21,10 +21,10 @@ class SimplyPremiumCom(MultiHoster):
def setup(self):
- self.chunkLimit = 16
+ self.chunk_limit = 16
- def checkErrors(self):
+ def check_errors(self):
if '<valid>0</valid>' in self.html or (
"You are not allowed to download from this host" in self.html and self.premium):
self.account.relogin(self.user)
@@ -34,30 +34,30 @@ class SimplyPremiumCom(MultiHoster):
self.offline()
elif "downloadlimit" in self.html:
- self.logWarning(_("Reached maximum connctions"))
+ self.log_warning(_("Reached maximum connctions"))
self.retry(5, 60, _("Reached maximum connctions"))
elif "trafficlimit" in self.html:
- self.logWarning(_("Reached daily limit for this host"))
- self.retry(wait_time=secondsToMidnight(gmt=2), reason="Daily limit for this host reached")
+ self.log_warning(_("Reached daily limit for this host"))
+ self.retry(wait_time=seconds_to_midnight(gmt=2), reason="Daily limit for this host reached")
elif "hostererror" in self.html:
- self.logWarning(_("Hoster temporarily unavailable, waiting 1 minute and retry"))
+ self.log_warning(_("Hoster temporarily unavailable, waiting 1 minute and retry"))
self.retry(5, 60, _("Hoster is temporarily unavailable"))
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
for i in xrange(5):
self.html = self.load("http://www.simply-premium.com/premium.php", get={'info': "", 'link': self.pyfile.url})
if self.html:
- self.logDebug("JSON data: " + self.html)
+ self.log_debug("JSON data: " + self.html)
break
else:
- self.logInfo(_("Unable to get API data, waiting 1 minute and retry"))
+ self.log_info(_("Unable to get API data, waiting 1 minute and retry"))
self.retry(5, 60, _("Unable to get API data"))
- self.checkErrors()
+ self.check_errors()
try:
self.pyfile.name = re.search(r'<name>([^<]+)</name>', self.html).group(1)
diff --git a/module/plugins/hoster/SimplydebridCom.py b/module/plugins/hoster/SimplydebridCom.py
index 5e06bed88..d054a3c54 100644
--- a/module/plugins/hoster/SimplydebridCom.py
+++ b/module/plugins/hoster/SimplydebridCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo, rep
class SimplydebridCom(MultiHoster):
__name__ = "SimplydebridCom"
__type__ = "hoster"
- __version__ = "0.19"
+ __version__ = "0.20"
__pattern__ = r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/sd\.php'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -19,8 +19,8 @@ class SimplydebridCom(MultiHoster):
__authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
- def handlePremium(self, pyfile):
- #fix the links for simply-debrid.com!
+ def handle_premium(self, pyfile):
+ # fix the links for simply-debrid.com!
self.link = replace_patterns(pyfile.url, [("clz.to", "cloudzer.net/file")
("http://share-online", "http://www.share-online")
("ul.to", "uploaded.net/file")
@@ -40,8 +40,8 @@ class SimplydebridCom(MultiHoster):
self.wait(5)
- def checkFile(self):
- if self.checkDownload({"error": "No address associated with hostname"}):
+ def check_file(self):
+ if self.check_download({"error": "No address associated with hostname"}):
self.retry(24, 3 * 60, _("Bad file downloaded"))
return super(SimplydebridCom, self).checkFile()
diff --git a/module/plugins/hoster/SizedriveCom.py b/module/plugins/hoster/SizedriveCom.py
index 4c5aedb6d..15007695d 100644
--- a/module/plugins/hoster/SizedriveCom.py
+++ b/module/plugins/hoster/SizedriveCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class SizedriveCom(SimpleHoster):
__name__ = "SizedriveCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?sizedrive\.com/[rd]/(?P<ID>\w+)'
@@ -23,12 +23,12 @@ class SizedriveCom(SimpleHoster):
def setup(self):
- self.resumeDownload = False
- self.multiDL = False
- self.chunkLimit = 1
+ self.resume_download = False
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.wait(5)
self.html = self.load("http://www.sizedrive.com/getdownload.php",
post={'id': self.info['pattern']['ID']})
diff --git a/module/plugins/hoster/SmoozedCom.py b/module/plugins/hoster/SmoozedCom.py
index 9b62314ad..31b5dd4d7 100644
--- a/module/plugins/hoster/SmoozedCom.py
+++ b/module/plugins/hoster/SmoozedCom.py
@@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster
class SmoozedCom(MultiHoster):
__name__ = "SmoozedCom"
__type__ = "hoster"
- __version__ = "0.07"
+ __version__ = "0.08"
__pattern__ = r'^unmatchable$' #: Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -22,7 +22,7 @@ class SmoozedCom(MultiHoster):
("Retry", r'{"state":"retry"}')]
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: In some cases hostsers do not supply us with a filename at download, so we
#: are going to set a fall back filename (e.g. for freakshare or xfileshare)
pyfile.name = pyfile.name.split('/').pop() #: Remove everthing before last slash
diff --git a/module/plugins/hoster/SockshareCom.py b/module/plugins/hoster/SockshareCom.py
index 44eedf9d4..16f702f15 100644
--- a/module/plugins/hoster/SockshareCom.py
+++ b/module/plugins/hoster/SockshareCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class SockshareCom(DeadHoster):
__name__ = "SockshareCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?sockshare\.com/(mobile/)?(file|embed)/(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/SolidfilesCom.py b/module/plugins/hoster/SolidfilesCom.py
index 184329a40..fc2f2741a 100644
--- a/module/plugins/hoster/SolidfilesCom.py
+++ b/module/plugins/hoster/SolidfilesCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class SolidfilesCom(SimpleHoster):
__name__ = "SolidfilesCom"
__type__ = "hoster"
- __version__ = "0.02"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?solidfiles\.com\/d/\w+'
@@ -26,8 +26,8 @@ class SolidfilesCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.chunk_limit = 1
getInfo = create_getInfo(SolidfilesCom)
diff --git a/module/plugins/hoster/SoundcloudCom.py b/module/plugins/hoster/SoundcloudCom.py
index 2b041bb94..97d5223be 100644
--- a/module/plugins/hoster/SoundcloudCom.py
+++ b/module/plugins/hoster/SoundcloudCom.py
@@ -9,7 +9,7 @@ from module.common.json_layer import json_loads
class SoundcloudCom(SimpleHoster):
__name__ = "SoundcloudCom"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'https?://(?:www\.)?soundcloud\.com/[\w-]+/[\w-]+'
__config__ = [("use_premium", "bool" , "Use premium account if available", True ),
@@ -24,7 +24,7 @@ class SoundcloudCom(SimpleHoster):
OFFLINE_PATTERN = r'<title>"SoundCloud - Hear the world’s sounds"</title>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
try:
song_id = re.search(r'sounds:(\d+)"', self.html).group(1)
@@ -46,10 +46,10 @@ class SoundcloudCom(SimpleHoster):
key=lambda t: regex.sub(t[0], ''),
reverse=True)
- self.logDebug("Streams found: %s" % (http_streams or "None"))
+ self.log_debug("Streams found: %s" % (http_streams or "None"))
if http_streams:
- stream_name, self.link = http_streams[0 if self.getConfig('quality') == "Higher" else -1]
+ stream_name, self.link = http_streams[0 if self.get_config('quality') == "Higher" else -1]
pyfile.name += '.' + stream_name.split('_')[1].lower()
diff --git a/module/plugins/hoster/SpeedLoadOrg.py b/module/plugins/hoster/SpeedLoadOrg.py
index 18f04b611..97997517b 100644
--- a/module/plugins/hoster/SpeedLoadOrg.py
+++ b/module/plugins/hoster/SpeedLoadOrg.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class SpeedLoadOrg(DeadHoster):
__name__ = "SpeedLoadOrg"
__type__ = "hoster"
- __version__ = "1.02"
+ __version__ = "1.03"
__pattern__ = r'http://(?:www\.)?speedload\.org/(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/SpeedfileCz.py b/module/plugins/hoster/SpeedfileCz.py
index cd6d65082..9f5da3c47 100644
--- a/module/plugins/hoster/SpeedfileCz.py
+++ b/module/plugins/hoster/SpeedfileCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class SpeedfileCz(DeadHoster):
__name__ = "SpeedFileCz"
__type__ = "hoster"
- __version__ = "0.32"
+ __version__ = "0.33"
__pattern__ = r'http://(?:www\.)?speedfile\.cz/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/SpeedyshareCom.py b/module/plugins/hoster/SpeedyshareCom.py
index 91788b2c8..4a9edb966 100644
--- a/module/plugins/hoster/SpeedyshareCom.py
+++ b/module/plugins/hoster/SpeedyshareCom.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class SpeedyshareCom(SimpleHoster):
__name__ = "SpeedyshareCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?(speedyshare\.com|speedy\.sh)/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -31,11 +31,11 @@ class SpeedyshareCom(SimpleHoster):
def setup(self):
- self.multiDL = False
- self.chunkLimit = 1
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.link = m.group(1)
diff --git a/module/plugins/hoster/StorageTo.py b/module/plugins/hoster/StorageTo.py
index feb9f3300..fc23916a6 100644
--- a/module/plugins/hoster/StorageTo.py
+++ b/module/plugins/hoster/StorageTo.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class StorageTo(DeadHoster):
__name__ = "StorageTo"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'http://(?:www\.)?storage\.to/get/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/StreamCz.py b/module/plugins/hoster/StreamCz.py
index 24b725722..e2ae0ab83 100644
--- a/module/plugins/hoster/StreamCz.py
+++ b/module/plugins/hoster/StreamCz.py
@@ -6,7 +6,7 @@ from module.network.RequestFactory import getURL
from module.plugins.internal.Hoster import Hoster
-def getInfo(urls):
+def get_info(urls):
result = []
for url in urls:
@@ -23,7 +23,7 @@ def getInfo(urls):
class StreamCz(Hoster):
__name__ = "StreamCz"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'https?://(?:www\.)?stream\.cz/[^/]+/\d+'
@@ -39,8 +39,8 @@ class StreamCz(Hoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
def process(self, pyfile):
@@ -53,7 +53,7 @@ class StreamCz(Hoster):
if m is None:
self.error(_("CDN_PATTERN not found"))
cdn = m.groupdict()
- self.logDebug(cdn)
+ self.log_debug(cdn)
for cdnkey in ("cdnHD", "cdnHQ", "cdnLQ"):
if cdnkey in cdn and cdn[cdnkey] > '':
cdnid = cdn[cdnkey]
@@ -67,5 +67,5 @@ class StreamCz(Hoster):
pyfile.name = "%s-%s.%s.mp4" % (m.group(2), m.group(1), cdnkey[-2:])
download_url = "http://cdn-dispatcher.stream.cz/?id=" + cdnid
- self.logInfo(_("STREAM: %s") % cdnkey[-2:], download_url)
+ self.log_info(_("STREAM: %s") % cdnkey[-2:], download_url)
self.download(download_url)
diff --git a/module/plugins/hoster/StreamcloudEu.py b/module/plugins/hoster/StreamcloudEu.py
index 0f8c08ad9..943beadb5 100644
--- a/module/plugins/hoster/StreamcloudEu.py
+++ b/module/plugins/hoster/StreamcloudEu.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class StreamcloudEu(XFSHoster):
__name__ = "StreamcloudEu"
__type__ = "hoster"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'http://(?:www\.)?streamcloud\.eu/\w{12}'
@@ -21,9 +21,9 @@ class StreamcloudEu(XFSHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
- self.resumeDownload = self.premium
+ self.multi_dl = True
+ self.chunk_limit = 1
+ self.resume_download = self.premium
getInfo = create_getInfo(StreamcloudEu)
diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py
index efff6521a..e4ff000b2 100644
--- a/module/plugins/hoster/TurbobitNet.py
+++ b/module/plugins/hoster/TurbobitNet.py
@@ -17,7 +17,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t
class TurbobitNet(SimpleHoster):
__name__ = "TurbobitNet"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?turbobit\.net/(?:download/free/)?(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -42,16 +42,16 @@ class TurbobitNet(SimpleHoster):
CAPTCHA_PATTERN = r'<img alt="Captcha" src="(.+?)"'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.html = self.load("http://turbobit.net/download/free/%s" % self.info['pattern']['ID'])
- rtUpdate = self.getRtUpdate()
+ rtUpdate = self.get_rt_update()
- self.solveCaptcha()
+ self.solve_captcha()
self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])
- self.html = self.load(self.getDownloadUrl(rtUpdate))
+ self.html = self.load(self.get_download_url(rtUpdate))
self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"])
@@ -60,7 +60,7 @@ class TurbobitNet(SimpleHoster):
self.link = m.group(1)
- def solveCaptcha(self):
+ def solve_captcha(self):
for _i in xrange(5):
m = re.search(self.LIMIT_WAIT_PATTERN, self.html)
if m:
@@ -68,10 +68,10 @@ class TurbobitNet(SimpleHoster):
self.wait(wait_time, wait_time > 60)
self.retry()
- action, inputs = self.parseHtmlForm("action='#'")
+ action, inputs = self.parse_html_form("action='#'")
if not inputs:
self.error(_("Captcha form not found"))
- self.logDebug(inputs)
+ self.log_debug(inputs)
if inputs['captcha_type'] == 'recaptcha':
recaptcha = ReCaptcha(self)
@@ -81,25 +81,25 @@ class TurbobitNet(SimpleHoster):
if m is None:
self.error(_("captcha"))
captcha_url = m.group(1)
- inputs['captcha_response'] = self.decryptCaptcha(captcha_url)
+ inputs['captcha_response'] = self.decrypt_captcha(captcha_url)
- self.logDebug(inputs)
+ self.log_debug(inputs)
self.html = self.load(self.url, post=inputs)
if '<div class="captcha-error">Incorrect, try again!<' in self.html:
- self.invalidCaptcha()
+ self.invalid_captcha()
else:
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
self.fail(_("Invalid captcha"))
- def getRtUpdate(self):
- rtUpdate = self.getStorage("rtUpdate")
+ def get_rt_update(self):
+ rtUpdate = self.retrieve("rtUpdate")
if not rtUpdate:
- if self.getStorage("version") != self.__version__ \
- or int(self.getStorage("timestamp", 0)) + 86400000 < timestamp():
+ if self.retrieve("version") != self.__version__ \
+ or int(self.retrieve("timestamp", 0)) + 86400000 < timestamp():
#: that's right, we are even using jdownloader updates
rtUpdate = getURL("http://update0.jdownloader.org/pluginstuff/tbupdate.js")
rtUpdate = self.decrypt(rtUpdate.splitlines()[1])
@@ -108,17 +108,17 @@ class TurbobitNet(SimpleHoster):
r'zza=\2;for(var zzi=0;zzi<zza.length;zzi++){\1=zza[zzi];', rtUpdate)
rtUpdate = re.sub(r"for\((\w+)=", r"for(var \1=", rtUpdate)
- self.setStorage("rtUpdate", rtUpdate)
- self.setStorage("timestamp", timestamp())
- self.setStorage("version", self.__version__)
+ self.store("rtUpdate", rtUpdate)
+ self.store("timestamp", timestamp())
+ self.store("version", self.__version__)
else:
- self.logError(_("Unable to download, wait for update..."))
- self.tempOffline()
+ self.log_error(_("Unable to download, wait for update..."))
+ self.temp_offline()
return rtUpdate
- def getDownloadUrl(self, rtUpdate):
+ def get_download_url(self, rtUpdate):
self.req.http.lastURL = self.url
m = re.search("(/\w+/timeout\.js\?\w+=)([^\"\'<>]+)", self.html)
@@ -129,7 +129,7 @@ class TurbobitNet(SimpleHoster):
fun = self.load(url)
- self.setWait(65, False)
+ self.set_wait(65, False)
for b in [1, 3]:
self.jscode = "var id = \'%s\';var b = %d;var inn = \'%s\';%sout" % (
@@ -137,16 +137,16 @@ class TurbobitNet(SimpleHoster):
try:
out = self.js.eval(self.jscode)
- self.logDebug("URL", self.js.engine, out)
+ self.log_debug("URL", self.js.engine, out)
if out.startswith('/download/'):
return "http://turbobit.net%s" % out.strip()
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
if self.retries >= 2:
#: retry with updated js
- self.delStorage("rtUpdate")
+ self.delete("rtUpdate")
else:
self.retry()
@@ -158,7 +158,7 @@ class TurbobitNet(SimpleHoster):
return binascii.unhexlify(cipher.encrypt(binascii.unhexlify(data)))
- def getLocalTimeString(self):
+ def get_local_time_string(self):
lt = time.localtime()
tz = time.altzone if lt.tm_isdst else time.timezone
return "%s GMT%+03d%02d" % (time.strftime("%a %b %d %Y %H:%M:%S", lt), -tz // 3600, tz % 3600)
diff --git a/module/plugins/hoster/TurbouploadCom.py b/module/plugins/hoster/TurbouploadCom.py
index e4b53b818..79b6ac2a5 100644
--- a/module/plugins/hoster/TurbouploadCom.py
+++ b/module/plugins/hoster/TurbouploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class TurbouploadCom(DeadHoster):
__name__ = "TurbouploadCom"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?turboupload\.com/(\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/TusfilesNet.py b/module/plugins/hoster/TusfilesNet.py
index 3afd1da97..5a99aad72 100644
--- a/module/plugins/hoster/TusfilesNet.py
+++ b/module/plugins/hoster/TusfilesNet.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class TusfilesNet(XFSHoster):
__name__ = "TusfilesNet"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'https?://(?:www\.)?tusfiles\.net/\w{12}'
@@ -22,9 +22,9 @@ class TusfilesNet(XFSHoster):
def setup(self):
- self.chunkLimit = -1
- self.multiDL = True
- self.resumeDownload = True
+ self.chunk_limit = -1
+ self.multi_dl = True
+ self.resume_download = True
def download(self, url, *args, **kwargs):
@@ -33,7 +33,7 @@ class TusfilesNet(XFSHoster):
except BadHeader, e:
if e.code is 503:
- self.multiDL = False
+ self.multi_dl = False
raise Retry("503")
diff --git a/module/plugins/hoster/TwoSharedCom.py b/module/plugins/hoster/TwoSharedCom.py
index 086228637..72c78ec4f 100644
--- a/module/plugins/hoster/TwoSharedCom.py
+++ b/module/plugins/hoster/TwoSharedCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class TwoSharedCom(SimpleHoster):
__name__ = "TwoSharedCom"
__type__ = "hoster"
- __version__ = "0.13"
+ __version__ = "0.14"
__pattern__ = r'http://(?:www\.)?2shared\.com/(account/)?(download|get|file|document|photo|video|audio)/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -26,8 +26,8 @@ class TwoSharedCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
getInfo = create_getInfo(TwoSharedCom)
diff --git a/module/plugins/hoster/UlozTo.py b/module/plugins/hoster/UlozTo.py
index 6a2836b50..f60549813 100644
--- a/module/plugins/hoster/UlozTo.py
+++ b/module/plugins/hoster/UlozTo.py
@@ -7,7 +7,7 @@ from module.common.json_layer import json_loads
from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
-def convertDecimalPrefix(m):
+def convert_decimal_prefix(m):
#: decimal prefixes used in filesize and traffic
return ("%%.%df" % {'k': 3, 'M': 6, 'G': 9}[m.group(2)] % float(m.group(1))).replace('.', '')
@@ -15,7 +15,7 @@ def convertDecimalPrefix(m):
class UlozTo(SimpleHoster):
__name__ = "UlozTo"
__type__ = "hoster"
- __version__ = "1.10"
+ __version__ = "1.11"
__pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj\.cz|zachowajto\.pl)/(?:live/)?(?P<ID>\w+/[^/?]*)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -43,37 +43,37 @@ class UlozTo(SimpleHoster):
def setup(self):
- self.chunkLimit = 16 if self.premium else 1
- self.multiDL = True
- self.resumeDownload = True
+ self.chunk_limit = 16 if self.premium else 1
+ self.multi_dl = True
+ self.resume_download = True
- def handleFree(self, pyfile):
- action, inputs = self.parseHtmlForm('id="frm-downloadDialog-freeDownloadForm"')
+ def handle_free(self, pyfile):
+ action, inputs = self.parse_html_form('id="frm-downloadDialog-freeDownloadForm"')
if not action or not inputs:
self.error(_("Free download form not found"))
- self.logDebug("inputs.keys = " + str(inputs.keys()))
+ self.log_debug("inputs.keys = " + str(inputs.keys()))
#: get and decrypt captcha
if all(key in inputs for key in ("captcha_value", "captcha_id", "captcha_key")):
#: Old version - last seen 9.12.2013
- self.logDebug('Using "old" version')
+ self.log_debug('Using "old" version')
- captcha_value = self.decryptCaptcha("http://img.uloz.to/captcha/%s.png" % inputs['captcha_id'])
- self.logDebug("CAPTCHA ID: " + inputs['captcha_id'] + ", CAPTCHA VALUE: " + captcha_value)
+ captcha_value = self.decrypt_captcha("http://img.uloz.to/captcha/%s.png" % inputs['captcha_id'])
+ self.log_debug("CAPTCHA ID: " + inputs['captcha_id'] + ", CAPTCHA VALUE: " + captcha_value)
inputs.update({'captcha_id': inputs['captcha_id'], 'captcha_key': inputs['captcha_key'], 'captcha_value': captcha_value})
elif all(key in inputs for key in ("captcha_value", "timestamp", "salt", "hash")):
#: New version - better to get new parameters (like captcha reload) because of image url - since 6.12.2013
- self.logDebug('Using "new" version')
+ self.log_debug('Using "new" version')
xapca = self.load("http://www.ulozto.net/reloadXapca.php", get={'rnd': str(int(time.time()))})
- self.logDebug("xapca = " + str(xapca))
+ self.log_debug("xapca = " + str(xapca))
data = json_loads(xapca)
- captcha_value = self.decryptCaptcha(str(data['image']))
- self.logDebug("CAPTCHA HASH: " + data['hash'], "CAPTCHA SALT: " + str(data['salt']), "CAPTCHA VALUE: " + captcha_value)
+ captcha_value = self.decrypt_captcha(str(data['image']))
+ self.log_debug("CAPTCHA HASH: " + data['hash'], "CAPTCHA SALT: " + str(data['salt']), "CAPTCHA VALUE: " + captcha_value)
inputs.update({'timestamp': data['timestamp'], 'salt': data['salt'], 'hash': data['hash'], 'captcha_value': captcha_value})
@@ -83,13 +83,13 @@ class UlozTo(SimpleHoster):
self.download("http://www.ulozto.net" + action, post=inputs)
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.download(pyfile.url, get={'do': "directDownload"})
- def checkErrors(self):
+ def check_errors(self):
if re.search(self.ADULT_PATTERN, self.html):
- self.logInfo(_("Adult content confirmation needed"))
+ self.log_info(_("Adult content confirmation needed"))
m = re.search(self.TOKEN_PATTERN, self.html)
if m is None:
@@ -100,10 +100,10 @@ class UlozTo(SimpleHoster):
post={"agree": "Confirm", "_token_": m.group(1)})
if self.PASSWD_PATTERN in self.html:
- password = self.getPassword()
+ password = self.get_password()
if password:
- self.logInfo(_("Password protected link, trying ") + password)
+ self.log_info(_("Password protected link, trying ") + password)
self.html = self.load(pyfile.url,
get={'do': "passwordProtectedForm-submit"},
post={"password": password, "password_send": 'Send'})
@@ -119,8 +119,8 @@ class UlozTo(SimpleHoster):
return super(UlozTo, self).checkErrors()
- def checkFile(self):
- check = self.checkDownload({
+ def check_file(self):
+ check = self.check_download({
"wrong_captcha": re.compile(r'<ul class="error">\s*<li>Error rewriting the text.</li>'),
"offline" : re.compile(self.OFFLINE_PATTERN),
"passwd" : self.PASSWD_PATTERN,
@@ -129,7 +129,7 @@ class UlozTo(SimpleHoster):
})
if check == "wrong_captcha":
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(reason=_("Wrong captcha code"))
elif check == "offline":
@@ -139,8 +139,8 @@ class UlozTo(SimpleHoster):
self.fail(_("Wrong password"))
elif check == "server_error":
- self.logError(_("Server error, try downloading later"))
- self.multiDL = False
+ self.log_error(_("Server error, try downloading later"))
+ self.multi_dl = False
self.wait(1 * 60 * 60, True)
self.retry()
diff --git a/module/plugins/hoster/UloziskoSk.py b/module/plugins/hoster/UloziskoSk.py
index 81fdd21ed..c49db225b 100644
--- a/module/plugins/hoster/UloziskoSk.py
+++ b/module/plugins/hoster/UloziskoSk.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UloziskoSk(SimpleHoster):
__name__ = "UloziskoSk"
__type__ = "hoster"
- __version__ = "0.25"
+ __version__ = "0.26"
__pattern__ = r'http://(?:www\.)?ulozisko\.sk/.+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -37,10 +37,10 @@ class UloziskoSk(SimpleHoster):
if m:
self.link = "http://ulozisko.sk" + m.group(1)
else:
- self.handleFree(pyfile)
+ self.handle_free(pyfile)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.error(_("LINK_FREE_PATTERN not found"))
@@ -51,16 +51,16 @@ class UloziskoSk(SimpleHoster):
self.error(_("ID_PATTERN not found"))
id = m.group(1)
- self.logDebug("URL:" + parsed_url + ' ID:' + id)
+ self.log_debug("URL:" + parsed_url + ' ID:' + id)
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m is None:
self.error(_("CAPTCHA_PATTERN not found"))
captcha_url = urlparse.urljoin("http://www.ulozisko.sk", m.group(1))
- captcha = self.decryptCaptcha(captcha_url, cookies=True)
+ captcha = self.decrypt_captcha(captcha_url, cookies=True)
- self.logDebug("CAPTCHA_URL:" + captcha_url + ' CAPTCHA:' + captcha)
+ self.log_debug("CAPTCHA_URL:" + captcha_url + ' CAPTCHA:' + captcha)
self.download(parsed_url,
post={"antispam": captcha,
diff --git a/module/plugins/hoster/UnibytesCom.py b/module/plugins/hoster/UnibytesCom.py
index d090c8e7d..6763f6cb2 100644
--- a/module/plugins/hoster/UnibytesCom.py
+++ b/module/plugins/hoster/UnibytesCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UnibytesCom(SimpleHoster):
__name__ = "UnibytesCom"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'https?://(?:www\.)?unibytes\.com/[\w .-]{11}B'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -28,14 +28,14 @@ class UnibytesCom(SimpleHoster):
LINK_FREE_PATTERN = r'<a href="(.+?)">Download</a>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
domain = "http://www.%s/" % self.HOSTER_DOMAIN
- action, post_data = self.parseHtmlForm('id="startForm"')
+ action, post_data = self.parse_html_form('id="startForm"')
self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)
for _i in xrange(8):
- self.logDebug(action, post_data)
+ self.log_debug(action, post_data)
self.html = self.load(urlparse.urljoin(domain, action), post=post_data)
m = re.search(r'location:\s*(\S+)', self.req.http.header, re.I)
@@ -51,20 +51,20 @@ class UnibytesCom(SimpleHoster):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m:
self.link = m.group(1)
- self.correctCaptcha()
+ self.correct_captcha()
break
else:
- self.invalidCaptcha()
+ self.invalid_captcha()
last_step = post_data['step']
- action, post_data = self.parseHtmlForm('id="stepForm"')
+ action, post_data = self.parse_html_form('id="stepForm"')
if last_step == 'timer':
m = re.search(self.WAIT_PATTERN, self.html)
self.wait(m.group(1) if m else 60, False)
elif last_step in ("captcha", "last"):
- post_data['captcha'] = self.decryptCaptcha(urlparse.urljoin(domain, "/captcha.jpg"))
+ post_data['captcha'] = self.decrypt_captcha(urlparse.urljoin(domain, "/captcha.jpg"))
else:
self.fail(_("No valid captcha code entered"))
diff --git a/module/plugins/hoster/UnrestrictLi.py b/module/plugins/hoster/UnrestrictLi.py
index b63796fe0..a2406f5c6 100644
--- a/module/plugins/hoster/UnrestrictLi.py
+++ b/module/plugins/hoster/UnrestrictLi.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class UnrestrictLi(DeadHoster):
__name__ = "UnrestrictLi"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'https?://(?:www\.)?(unrestrict|unr)\.li/dl/[\w^_]+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/UpleaCom.py b/module/plugins/hoster/UpleaCom.py
index a6ec0807e..a08585f03 100644
--- a/module/plugins/hoster/UpleaCom.py
+++ b/module/plugins/hoster/UpleaCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class UpleaCom(XFSHoster):
__name__ = "UpleaCom"
__type__ = "hoster"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'https?://(?:www\.)?uplea\.com/dl/\w{15}'
@@ -37,12 +37,12 @@ class UpleaCom(XFSHoster):
def setup(self):
- self.multiDL = False
- self.chunkLimit = 1
- self.resumeDownload = True
+ self.multi_dl = False
+ self.chunk_limit = 1
+ self.resume_download = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.STEP_PATTERN, self.html)
if m is None:
self.error(_("STEP_PATTERN not found"))
@@ -51,7 +51,7 @@ class UpleaCom(XFSHoster):
m = re.search(self.WAIT_PATTERN, self.html)
if m:
- self.logDebug("Waiting %s seconds" % m.group(1))
+ self.log_debug("Waiting %s seconds" % m.group(1))
self.wait(m.group(1), True)
self.retry()
diff --git a/module/plugins/hoster/UploadStationCom.py b/module/plugins/hoster/UploadStationCom.py
index 61226e3da..fc98b10bc 100644
--- a/module/plugins/hoster/UploadStationCom.py
+++ b/module/plugins/hoster/UploadStationCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class UploadStationCom(DeadHoster):
__name__ = "UploadStationCom"
__type__ = "hoster"
- __version__ = "0.52"
+ __version__ = "0.53"
__pattern__ = r'http://(?:www\.)?uploadstation\.com/file/(?P<ID>\w+)'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/UploadableCh.py b/module/plugins/hoster/UploadableCh.py
index b2323644f..21d9f298e 100644
--- a/module/plugins/hoster/UploadableCh.py
+++ b/module/plugins/hoster/UploadableCh.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UploadableCh(SimpleHoster):
__name__ = "UploadableCh"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?uploadable\.ch/file/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -32,16 +32,16 @@ class UploadableCh(SimpleHoster):
RECAPTCHA_KEY = "6LdlJuwSAAAAAPJbPIoUhyqOJd7-yrah5Nhim5S3"
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
#: Click the "free user" button and wait
a = self.load(pyfile.url, post={'downloadLink': "wait"})
- self.logDebug(a)
+ self.log_debug(a)
self.wait(30)
#: Make the recaptcha appear and show it the pyload interface
b = self.load(pyfile.url, post={'checkDownload': "check"})
- self.logDebug(b) #: Expected output: {"success":"showCaptcha"}
+ self.log_debug(b) #: Expected output: {"success":"showCaptcha"}
recaptcha = ReCaptcha(self)
@@ -64,9 +64,9 @@ class UploadableCh(SimpleHoster):
self.download(pyfile.url, post={'download': "normal"}, disposition=True)
- def checkFile(self):
- if self.checkDownload({'wait': re.compile("Please wait for")}):
- self.logInfo("Downloadlimit reached, please wait or reconnect")
+ def check_file(self):
+ if self.check_download({'wait': re.compile("Please wait for")}):
+ self.log_info("Downloadlimit reached, please wait or reconnect")
self.wait(60 * 60, True)
self.retry()
diff --git a/module/plugins/hoster/UploadboxCom.py b/module/plugins/hoster/UploadboxCom.py
index cb4f50184..82ecf6f87 100644
--- a/module/plugins/hoster/UploadboxCom.py
+++ b/module/plugins/hoster/UploadboxCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class UploadboxCom(DeadHoster):
__name__ = "Uploadbox"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'http://(?:www\.)?uploadbox\.com/files/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/UploadedTo.py b/module/plugins/hoster/UploadedTo.py
index b88ac5f0b..32b54d1ae 100644
--- a/module/plugins/hoster/UploadedTo.py
+++ b/module/plugins/hoster/UploadedTo.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UploadedTo(SimpleHoster):
__name__ = "UploadedTo"
__type__ = "hoster"
- __version__ = "0.94"
+ __version__ = "0.95"
__pattern__ = r'https?://(?:www\.)?(uploaded\.(to|net)|ul\.to)(/file/|/?\?id=|.*?&id=|/)(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -40,8 +40,8 @@ class UploadedTo(SimpleHoster):
@classmethod
- def apiInfo(cls, url):
- info = super(UploadedTo, cls).apiInfo(url)
+ def api_info(cls, url):
+ info = super(UploadedTo, cls).api_info(url)
for _i in xrange(5):
html = getURL("http://uploaded.net/api/filemultiple",
@@ -61,11 +61,11 @@ class UploadedTo(SimpleHoster):
def setup(self):
- self.multiDL = self.resumeDownload = self.premium
- self.chunkLimit = 1 #: critical problems with more chunks
+ self.multi_dl = self.resume_download = self.premium
+ self.chunk_limit = 1 #: critical problems with more chunks
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.load("http://uploaded.net/language/en", just_header=True)
self.html = self.load("http://uploaded.net/js/download.js")
@@ -77,8 +77,8 @@ class UploadedTo(SimpleHoster):
post={'recaptcha_challenge_field': challenge,
'recaptcha_response_field' : response})
- super(UploadedTo, self).handleFree(pyfile)
- self.checkErrors()
+ super(UploadedTo, self).handle_free(pyfile)
+ self.check_errors()
getInfo = create_getInfo(UploadedTo)
diff --git a/module/plugins/hoster/UploadhereCom.py b/module/plugins/hoster/UploadhereCom.py
index bc94e644e..39027dca9 100644
--- a/module/plugins/hoster/UploadhereCom.py
+++ b/module/plugins/hoster/UploadhereCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class UploadhereCom(DeadHoster):
__name__ = "UploadhereCom"
__type__ = "hoster"
- __version__ = "0.12"
+ __version__ = "0.13"
__pattern__ = r'http://(?:www\.)?uploadhere\.com/\w{10}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/UploadheroCom.py b/module/plugins/hoster/UploadheroCom.py
index 5c74f10eb..2ae7356c5 100644
--- a/module/plugins/hoster/UploadheroCom.py
+++ b/module/plugins/hoster/UploadheroCom.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UploadheroCom(SimpleHoster):
__name__ = "UploadheroCom"
__type__ = "hoster"
- __version__ = "0.18"
+ __version__ = "0.19"
__pattern__ = r'http://(?:www\.)?uploadhero\.com?/dl/\w+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -38,12 +38,12 @@ class UploadheroCom(SimpleHoster):
LINK_PREMIUM_PATTERN = r'<a href="(.+?)" id="downloadnow"'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m is None:
self.error(_("Captcha not found"))
- captcha = self.decryptCaptcha(urlparse.urljoin("http://uploadhero.co", m.group(1)))
+ captcha = self.decrypt_captcha(urlparse.urljoin("http://uploadhero.co", m.group(1)))
self.html = self.load(pyfile.url,
get={"code": captcha})
@@ -54,7 +54,7 @@ class UploadheroCom(SimpleHoster):
self.wait(50)
- def checkErrors(self):
+ def check_errors(self):
m = re.search(self.IP_BLOCKED_PATTERN, self.html)
if m:
self.html = self.load(urlparse.urljoin("http://uploadhero.co", m.group(1)))
diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py
index efdcd81fe..04abf15ee 100644
--- a/module/plugins/hoster/UploadingCom.py
+++ b/module/plugins/hoster/UploadingCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t
class UploadingCom(SimpleHoster):
__name__ = "UploadingCom"
__type__ = "hoster"
- __version__ = "0.41"
+ __version__ = "0.42"
__pattern__ = r'http://(?:www\.)?uploading\.com/files/(?:get/)?(?P<ID>\w+)'
@@ -39,12 +39,12 @@ class UploadingCom(SimpleHoster):
self.getFileInfo()
if self.premium:
- self.handlePremium(pyfile)
+ self.handle_premium(pyfile)
else:
- self.handleFree(pyfile)
+ self.handle_free(pyfile)
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
postData = {'action': 'get_link',
'code' : self.info['pattern']['ID'],
'pass' : 'undefined'}
@@ -57,11 +57,11 @@ class UploadingCom(SimpleHoster):
raise Exception("Plugin defect")
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search('<h2>((Daily )?Download Limit)</h2>', self.html)
if m:
pyfile.error = m.group(1)
- self.logWarning(pyfile.error)
+ self.log_warning(pyfile.error)
self.retry(6, (6 * 60 if m.group(2) else 15) * 60, pyfile.error)
ajax_url = "http://uploading.com/files/get/?ajax"
@@ -72,7 +72,7 @@ class UploadingCom(SimpleHoster):
if 'answer' in res and 'wait_time' in res['answer']:
wait_time = int(res['answer']['wait_time'])
- self.logInfo(_("Waiting %d seconds") % wait_time)
+ self.log_info(_("Waiting %d seconds") % wait_time)
self.wait(wait_time)
else:
self.error(_("No AJAX/WAIT"))
diff --git a/module/plugins/hoster/UploadkingCom.py b/module/plugins/hoster/UploadkingCom.py
index 0d60cef1f..44ebed105 100644
--- a/module/plugins/hoster/UploadkingCom.py
+++ b/module/plugins/hoster/UploadkingCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class UploadkingCom(DeadHoster):
__name__ = "UploadkingCom"
__type__ = "hoster"
- __version__ = "0.14"
+ __version__ = "0.15"
__pattern__ = r'http://(?:www\.)?uploadking\.com/\w{10}'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/UpstoreNet.py b/module/plugins/hoster/UpstoreNet.py
index 342009c98..f628e1db3 100644
--- a/module/plugins/hoster/UpstoreNet.py
+++ b/module/plugins/hoster/UpstoreNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class UpstoreNet(SimpleHoster):
__name__ = "UpstoreNet"
__type__ = "hoster"
- __version__ = "0.06"
+ __version__ = "0.07"
__pattern__ = r'https?://(?:www\.)?upstore\.net/'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -27,13 +27,13 @@ class UpstoreNet(SimpleHoster):
LINK_FREE_PATTERN = r'<a href="(https?://.*?)" target="_blank"><b>'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
# STAGE 1: get link to continue
m = re.search(self.CHASH_PATTERN, self.html)
if m is None:
self.error(_("CHASH_PATTERN not found"))
chash = m.group(1)
- self.logDebug("Read hash " + chash)
+ self.log_debug("Read hash " + chash)
#: continue to stage2
post_data = {'hash': chash, 'free': 'Slow download'}
self.html = self.load(pyfile.url, post=post_data)
diff --git a/module/plugins/hoster/UptoboxCom.py b/module/plugins/hoster/UptoboxCom.py
index 2c06558e4..981c37162 100644
--- a/module/plugins/hoster/UptoboxCom.py
+++ b/module/plugins/hoster/UptoboxCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class UptoboxCom(XFSHoster):
__name__ = "UptoboxCom"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'https?://(?:www\.)?(uptobox|uptostream)\.com/\w{12}'
@@ -23,9 +23,9 @@ class UptoboxCom(XFSHoster):
def setup(self):
- self.multiDL = True
- self.chunkLimit = 1
- self.resumeDownload = True
+ self.multi_dl = True
+ self.chunk_limit = 1
+ self.resume_download = True
getInfo = create_getInfo(UptoboxCom)
diff --git a/module/plugins/hoster/VeehdCom.py b/module/plugins/hoster/VeehdCom.py
index 9f8e77d94..abf4f1c7a 100644
--- a/module/plugins/hoster/VeehdCom.py
+++ b/module/plugins/hoster/VeehdCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster
class VeehdCom(Hoster):
__name__ = "VeehdCom"
__type__ = "hoster"
- __version__ = "0.24"
+ __version__ = "0.25"
__pattern__ = r'http://veehd\.com/video/\d+_\S+'
__config__ = [("filename_spaces", "bool", "Allow spaces in filename", False),
@@ -20,7 +20,7 @@ class VeehdCom(Hoster):
def setup(self):
- self.multiDL = True
+ self.multi_dl = True
self.req.canContinue = True
@@ -35,7 +35,7 @@ class VeehdCom(Hoster):
def download_html(self):
url = self.pyfile.url
- self.logDebug("Requesting page: %s" % url)
+ self.log_debug("Requesting page: %s" % url)
self.html = self.load(url)
@@ -59,12 +59,12 @@ class VeehdCom(Hoster):
name = m.group(1)
#: replace unwanted characters in filename
- if self.getConfig('filename_spaces'):
+ if self.get_config('filename_spaces'):
pattern = '[^\w ]+'
else:
pattern = '[^\w.]+'
- return re.sub(pattern, self.getConfig('replacement_char'), name) + '.avi'
+ return re.sub(pattern, self.get_config('replacement_char'), name) + '.avi'
def get_file_url(self):
diff --git a/module/plugins/hoster/VeohCom.py b/module/plugins/hoster/VeohCom.py
index 57b24623b..fc7e6c318 100644
--- a/module/plugins/hoster/VeohCom.py
+++ b/module/plugins/hoster/VeohCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class VeohCom(SimpleHoster):
__name__ = "VeohCom"
__type__ = "hoster"
- __version__ = "0.22"
+ __version__ = "0.23"
__pattern__ = r'http://(?:www\.)?veoh\.com/(tv/)?(watch|videos)/(?P<ID>v\w+)'
__config__ = [("use_premium", "bool" , "Use premium account if available", True ),
@@ -28,13 +28,13 @@ class VeohCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.chunkLimit = -1
+ self.resume_download = True
+ self.multi_dl = True
+ self.chunk_limit = -1
- def handleFree(self, pyfile):
- quality = self.getConfig('quality')
+ def handle_free(self, pyfile):
+ quality = self.get_config('quality')
if quality == "Auto":
quality = ("High", "Low")
@@ -46,7 +46,7 @@ class VeohCom(SimpleHoster):
self.link = m.group(1).replace("\\", "")
return
else:
- self.logInfo(_("No %s quality video found") % q.upper())
+ self.log_info(_("No %s quality video found") % q.upper())
else:
self.fail(_("No video found!"))
diff --git a/module/plugins/hoster/VidPlayNet.py b/module/plugins/hoster/VidPlayNet.py
index f1a32a897..44cfe1e6d 100644
--- a/module/plugins/hoster/VidPlayNet.py
+++ b/module/plugins/hoster/VidPlayNet.py
@@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class VidPlayNet(XFSHoster):
__name__ = "VidPlayNet"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'https?://(?:www\.)?vidplay\.net/\w{12}'
diff --git a/module/plugins/hoster/VimeoCom.py b/module/plugins/hoster/VimeoCom.py
index dc774ecf6..c4002fac0 100644
--- a/module/plugins/hoster/VimeoCom.py
+++ b/module/plugins/hoster/VimeoCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class VimeoCom(SimpleHoster):
__name__ = "VimeoCom"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://(?:www\.)?(player\.)?vimeo\.com/(video/)?(?P<ID>\d+)'
__config__ = [("use_premium", "bool" , "Use premium account if available" , True ),
@@ -30,13 +30,13 @@ class VimeoCom(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.chunkLimit = -1
+ self.resume_download = True
+ self.multi_dl = True
+ self.chunk_limit = -1
- def handleFree(self, pyfile):
- password = self.getPassword()
+ def handle_free(self, pyfile):
+ password = self.get_password()
if self.js and 'class="btn iconify_down_b"' in self.html:
html = self.js.eval(self.load(pyfile.url, get={'action': "download", 'password': password}))
@@ -47,14 +47,14 @@ class VimeoCom(SimpleHoster):
link = dict((l.group('QL').lower(), l.group('URL')) for l in re.finditer(pattern, html))
- if self.getConfig('original'):
+ if self.get_config('original'):
if "original" in link:
self.link = link[q]
return
else:
- self.logInfo(_("Original file not downloadable"))
+ self.log_info(_("Original file not downloadable"))
- quality = self.getConfig('quality')
+ quality = self.get_config('quality')
if quality == "Highest":
qlevel = ("hd", "sd", "mobile")
elif quality == "Lowest":
@@ -67,7 +67,7 @@ class VimeoCom(SimpleHoster):
self.link = link[q]
return
else:
- self.logInfo(_("No %s quality video found") % q.upper())
+ self.log_info(_("No %s quality video found") % q.upper())
else:
self.fail(_("No video found!"))
diff --git a/module/plugins/hoster/Vipleech4UCom.py b/module/plugins/hoster/Vipleech4UCom.py
index 5668e0fad..64174680d 100644
--- a/module/plugins/hoster/Vipleech4UCom.py
+++ b/module/plugins/hoster/Vipleech4UCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class Vipleech4UCom(DeadHoster):
__name__ = "Vipleech4UCom"
__type__ = "hoster"
- __version__ = "0.20"
+ __version__ = "0.21"
__pattern__ = r'http://(?:www\.)?vipleech4u\.com/manager\.php'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/VkCom.py b/module/plugins/hoster/VkCom.py
index 8237e7536..ed9dc8cd5 100644
--- a/module/plugins/hoster/VkCom.py
+++ b/module/plugins/hoster/VkCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class VkCom(SimpleHoster):
__name__ = "VkCom"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r"https?://(?:www\.)?vk\.com/video_ext\.php/\?.+"
__config__ = [("quality", "Low;High;Auto", "Quality", "Auto")]
@@ -27,8 +27,8 @@ class VkCom(SimpleHoster):
LINK_FREE_PATTERN = r'url\d+":"(.+?)"'
- def handleFree(self, pyfile):
- self.link = re.findall(self.LINK_FREE_PATTERN, self.html)[0 if self.getConfig('quality') is "Low" else -1]
+ def handle_free(self, pyfile):
+ self.link = re.findall(self.LINK_FREE_PATTERN, self.html)[0 if self.get_config('quality') is "Low" else -1]
getInfo = create_getInfo(VkCom)
diff --git a/module/plugins/hoster/WarserverCz.py b/module/plugins/hoster/WarserverCz.py
index 6cb94e57e..8c2c87ad5 100644
--- a/module/plugins/hoster/WarserverCz.py
+++ b/module/plugins/hoster/WarserverCz.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class WarserverCz(DeadHoster):
__name__ = "WarserverCz"
__type__ = "hoster"
- __version__ = "0.13"
+ __version__ = "0.14"
__pattern__ = r'http://(?:www\.)?warserver\.cz/stahnout/\d+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/WebshareCz.py b/module/plugins/hoster/WebshareCz.py
index 6aac44df6..2afe7421a 100644
--- a/module/plugins/hoster/WebshareCz.py
+++ b/module/plugins/hoster/WebshareCz.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class WebshareCz(SimpleHoster):
__name__ = "WebshareCz"
__type__ = "hoster"
- __version__ = "0.18"
+ __version__ = "0.19"
__pattern__ = r'https?://(?:www\.)?(en\.)?webshare\.cz/(?:#/)?file/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -21,8 +21,8 @@ class WebshareCz(SimpleHoster):
@classmethod
- def apiInfo(cls, url):
- info = super(WebshareCz, cls).apiInfo(url)
+ def api_info(cls, url):
+ info = super(WebshareCz, cls).api_info(url)
info['pattern'] = re.match(cls.__pattern__, url).groupdict()
@@ -39,21 +39,21 @@ class WebshareCz(SimpleHoster):
return info
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
wst = self.account.getAccountData(self.user).get('wst', None) if self.account else None
api_data = getURL("https://webshare.cz/api/file_link/",
post={'ident': self.info['pattern']['ID'], 'wst': wst})
- self.logDebug("API data: " + api_data)
+ self.log_debug("API data: " + api_data)
m = re.search('<link>(.+)</link>', api_data)
if m:
self.link = m.group(1)
- def handlePremium(self, pyfile):
- return self.handleFree(pyfile)
+ def handle_premium(self, pyfile):
+ return self.handle_free(pyfile)
getInfo = create_getInfo(WebshareCz)
diff --git a/module/plugins/hoster/WrzucTo.py b/module/plugins/hoster/WrzucTo.py
index f11d03ea8..8a32832a0 100644
--- a/module/plugins/hoster/WrzucTo.py
+++ b/module/plugins/hoster/WrzucTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class WrzucTo(SimpleHoster):
__name__ = "WrzucTo"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?wrzuc\.to/(\w+(\.wt|\.html)|(\w+/?linki/\w+))'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -26,10 +26,10 @@ class WrzucTo(SimpleHoster):
def setup(self):
- self.multiDL = True
+ self.multi_dl = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
data = dict(re.findall(r'(md5|file): "(.*?)"', self.html))
if len(data) != 2:
self.error(_("No file ID"))
diff --git a/module/plugins/hoster/WuploadCom.py b/module/plugins/hoster/WuploadCom.py
index 73c008ae8..3263b4974 100644
--- a/module/plugins/hoster/WuploadCom.py
+++ b/module/plugins/hoster/WuploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class WuploadCom(DeadHoster):
__name__ = "WuploadCom"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'http://(?:www\.)?wupload\..+?/file/((\w+/)?\d+)(/.*)?'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/X7To.py b/module/plugins/hoster/X7To.py
index 8e2dd3a53..d329b5270 100644
--- a/module/plugins/hoster/X7To.py
+++ b/module/plugins/hoster/X7To.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class X7To(DeadHoster):
__name__ = "X7To"
__type__ = "hoster"
- __version__ = "0.41"
+ __version__ = "0.42"
__pattern__ = r'http://(?:www\.)?x7\.to/'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/XFileSharingPro.py b/module/plugins/hoster/XFileSharingPro.py
index f58b7f0de..860fd5309 100644
--- a/module/plugins/hoster/XFileSharingPro.py
+++ b/module/plugins/hoster/XFileSharingPro.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class XFileSharingPro(XFSHoster):
__name__ = "XFileSharingPro"
__type__ = "hoster"
- __version__ = "0.48"
+ __version__ = "0.49"
__pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:embed-)?\w{12}(?:\W|$)'
@@ -49,9 +49,9 @@ class XFileSharingPro(XFSHoster):
def setup(self):
- self.chunkLimit = 1
- self.resumeDownload = self.premium
- self.multiDL = True
+ self.chunk_limit = 1
+ self.resume_download = self.premium
+ self.multi_dl = True
getInfo = create_getInfo(XFileSharingPro)
diff --git a/module/plugins/hoster/XHamsterCom.py b/module/plugins/hoster/XHamsterCom.py
index d9441d792..db5dcdee3 100644
--- a/module/plugins/hoster/XHamsterCom.py
+++ b/module/plugins/hoster/XHamsterCom.py
@@ -18,7 +18,7 @@ def clean_json(json_expr):
class XHamsterCom(Hoster):
__name__ = "XHamsterCom"
__type__ = "hoster"
- __version__ = "0.13"
+ __version__ = "0.14"
__pattern__ = r'http://(?:www\.)?xhamster\.com/movies/.+'
__config__ = [("type", ".mp4;.flv", "Preferred type", ".mp4")]
@@ -34,8 +34,8 @@ class XHamsterCom(Hoster):
if not self.file_exists():
self.offline()
- if self.getConfig('type'):
- self.desired_fmt = self.getConfig('type')
+ if self.get_config('type'):
+ self.desired_fmt = self.get_config('type')
pyfile.name = self.get_file_name() + self.desired_fmt
self.download(self.get_file_url())
@@ -80,7 +80,7 @@ class XHamsterCom(Hoster):
self.error(_("file_url not found"))
file_url = file_url.group(1)
long_url = srv_url + file_url
- self.logDebug("long_url = " + long_url)
+ self.log_debug("long_url = " + long_url)
else:
if flashvars['file']:
file_url = urllib.unquote(flashvars['file'])
@@ -89,10 +89,10 @@ class XHamsterCom(Hoster):
if url_mode == '3':
long_url = file_url
- self.logDebug("long_url = " + long_url)
+ self.log_debug("long_url = " + long_url)
else:
long_url = srv_url + "key=" + file_url
- self.logDebug("long_url = " + long_url)
+ self.log_debug("long_url = " + long_url)
return long_url
diff --git a/module/plugins/hoster/XVideosCom.py b/module/plugins/hoster/XVideosCom.py
index e4deccfe8..fc528bdc9 100644
--- a/module/plugins/hoster/XVideosCom.py
+++ b/module/plugins/hoster/XVideosCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster
class XVideosCom(Hoster):
__name__ = "XVideos.com"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'http://(?:www\.)?xvideos\.com/video(\d+)'
diff --git a/module/plugins/hoster/XdadevelopersCom.py b/module/plugins/hoster/XdadevelopersCom.py
index 45d1e92cb..5ddd2b5bc 100644
--- a/module/plugins/hoster/XdadevelopersCom.py
+++ b/module/plugins/hoster/XdadevelopersCom.py
@@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class XdadevelopersCom(SimpleHoster):
__name__ = "XdadevelopersCom"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'https?://(?:www\.)?forum\.xda-developers\.com/devdb/project/dl/\?id=\d+'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -27,12 +27,12 @@ class XdadevelopersCom(SimpleHoster):
def setup(self):
- self.multiDL = True
- self.resumeDownload = True
- self.chunkLimit = 1
+ self.multi_dl = True
+ self.resume_download = True
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
self.link = pyfile.url + "&task=get" #@TODO: Revert to `get={'task': "get"}` in 0.4.10
diff --git a/module/plugins/hoster/Xdcc.py b/module/plugins/hoster/Xdcc.py
index f1508f0e4..d78794f99 100644
--- a/module/plugins/hoster/Xdcc.py
+++ b/module/plugins/hoster/Xdcc.py
@@ -15,7 +15,7 @@ from module.utils import save_join as fs_join
class Xdcc(Hoster):
__name__ = "Xdcc"
__type__ = "hoster"
- __version__ = "0.33"
+ __version__ = "0.34"
__config__ = [("nick", "str", "Nickname", "pyload"),
("ident", "str", "Ident", "pyloadident"),
@@ -29,7 +29,7 @@ class Xdcc(Hoster):
def setup(self):
self.debug = 0 #: 0,1,2
self.timeout = 30
- self.multiDL = False
+ self.multi_dl = False
def process(self, pyfile):
@@ -39,8 +39,8 @@ class Xdcc(Hoster):
self.pyfile = pyfile
for _i in xrange(0, 3):
try:
- nmn = self.doDownload(pyfile.url)
- self.logDebug("Download of %s finished." % nmn)
+ nmn = self.do_download(pyfile.url)
+ self.log_debug("Download of %s finished." % nmn)
return
except socket.error, e:
if hasattr(e, "errno"):
@@ -49,8 +49,8 @@ class Xdcc(Hoster):
errno = e.args[0]
if errno == 10054:
- self.logDebug("Server blocked our ip, retry in 5 min")
- self.setWait(300)
+ self.log_debug("Server blocked our ip, retry in 5 min")
+ self.set_wait(300)
self.wait()
continue
@@ -59,7 +59,7 @@ class Xdcc(Hoster):
self.fail(_("Server blocked our ip, retry again later manually"))
- def doDownload(self, url):
+ def do_download(self, url):
self.pyfile.setStatus("waiting") #: real link
m = re.match(r'xdcc://(.*?)/#?(.*?)/(.*?)/#?(\d+)/?', url)
@@ -67,9 +67,9 @@ class Xdcc(Hoster):
chan = m.group(2)
bot = m.group(3)
pack = m.group(4)
- nick = self.getConfig('nick')
- ident = self.getConfig('ident')
- real = self.getConfig('realname')
+ nick = self.get_config('nick')
+ ident = self.get_config('ident')
+ real = self.get_config('realname')
temp = server.split(':')
ln = len(temp)
@@ -91,7 +91,7 @@ class Xdcc(Hoster):
sock.send("NICK %s\r\n" % nick)
sock.send("USER %s %s bla :%s\r\n" % (ident, host, real))
- self.setWait(3)
+ self.set_wait(3)
self.wait()
sock.send("JOIN #%s\r\n" % chan)
@@ -153,10 +153,10 @@ class Xdcc(Hoster):
if nick == msg['target'][0:len(nick)] and "PRIVMSG" == msg['action']:
if msg['text'] == "\x01VERSION\x01":
- self.logDebug("Sending CTCP VERSION")
+ self.log_debug("Sending CTCP VERSION")
sock.send("NOTICE %s :%s\r\n" % (msg['origin'], "pyLoad! IRC Interface"))
elif msg['text'] == "\x01TIME\x01":
- self.logDebug("Sending CTCP TIME")
+ self.log_debug("Sending CTCP TIME")
sock.send("NOTICE %s :%d\r\n" % (msg['origin'], time.time()))
elif msg['text'] == "\x01LAG\x01":
pass #: don't know how to answer
@@ -192,17 +192,17 @@ class Xdcc(Hoster):
download_folder = self.core.config.get("general", "download_folder")
filename = fs_join(download_folder, packname)
- self.logInfo(_("Downloading %s from %s:%d") % (packname, ip, port))
+ self.log_info(_("Downloading %s from %s:%d") % (packname, ip, port))
self.pyfile.setStatus("downloading")
newname = self.req.download(ip, port, filename, sock, self.pyfile.setProgress)
if newname and newname != filename:
- self.logInfo(_("%(name)s saved as %(newname)s") % {"name": self.pyfile.name, "newname": newname})
+ self.log_info(_("%(name)s saved as %(newname)s") % {"name": self.pyfile.name, "newname": newname})
filename = newname
#: kill IRC socket
#: sock.send("QUIT :byebye\r\n")
sock.close()
- self.lastDownload = filename
- return self.lastDownload
+ self.last_download = filename
+ return self.last_download
diff --git a/module/plugins/hoster/YadiSk.py b/module/plugins/hoster/YadiSk.py
index 3b4c9d985..5c0c1a800 100644
--- a/module/plugins/hoster/YadiSk.py
+++ b/module/plugins/hoster/YadiSk.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class YadiSk(SimpleHoster):
__name__ = "YadiSk"
__type__ = "hoster"
- __version__ = "0.05"
+ __version__ = "0.06"
__pattern__ = r'https?://yadi\.sk/d/[\w-]+'
@@ -23,8 +23,8 @@ class YadiSk(SimpleHoster):
@classmethod
- def getInfo(cls, url="", html=""):
- info = super(YadiSk, cls).getInfo(url, html)
+ def get_info(cls, url="", html=""):
+ info = super(YadiSk, cls).get_info(url, html)
if html:
if 'idclient' not in info:
@@ -59,12 +59,12 @@ class YadiSk(SimpleHoster):
def setup(self):
- self.resumeDownload = False
- self.multiDL = False
- self.chunkLimit = 1
+ self.resume_download = False
+ self.multi_dl = False
+ self.chunk_limit = 1
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if any(True for _k in ['id', 'sk', 'version', 'idclient'] if _k not in self.info):
self.error(_("Missing JSON data"))
diff --git a/module/plugins/hoster/YibaishiwuCom.py b/module/plugins/hoster/YibaishiwuCom.py
index 00185c05a..e63cd89d0 100644
--- a/module/plugins/hoster/YibaishiwuCom.py
+++ b/module/plugins/hoster/YibaishiwuCom.py
@@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class YibaishiwuCom(SimpleHoster):
__name__ = "YibaishiwuCom"
__type__ = "hoster"
- __version__ = "0.14"
+ __version__ = "0.15"
__pattern__ = r'http://(?:www\.)?(?:u\.)?115\.com/file/(?P<ID>\w+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -27,14 +27,14 @@ class YibaishiwuCom(SimpleHoster):
LINK_FREE_PATTERN = r'(/\?ct=(pickcode|download)[^"\']+)'
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
self.error(_("LINK_FREE_PATTERN not found"))
url = m.group(1)
- self.logDebug(('FREEUSER' if m.group(2) == 'download' else 'GUEST') + ' URL', url)
+ self.log_debug(('FREEUSER' if m.group(2) == 'download' else 'GUEST') + ' URL', url)
res = json_loads(self.load(urlparse.urljoin("http://115.com", url), decode=False))
if "urls" in res:
@@ -49,7 +49,7 @@ class YibaishiwuCom(SimpleHoster):
for mr in mirrors:
try:
self.link = mr['url'].replace("\\", "")
- self.logDebug("Trying URL: " + self.link)
+ self.log_debug("Trying URL: " + self.link)
break
except Exception:
continue
diff --git a/module/plugins/hoster/YoupornCom.py b/module/plugins/hoster/YoupornCom.py
index fa40714c6..959ee83a5 100644
--- a/module/plugins/hoster/YoupornCom.py
+++ b/module/plugins/hoster/YoupornCom.py
@@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster
class YoupornCom(Hoster):
__name__ = "YoupornCom"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'http://(?:www\.)?youporn\.com/watch/.+'
diff --git a/module/plugins/hoster/YourfilesTo.py b/module/plugins/hoster/YourfilesTo.py
index 7db6129e2..c6e106027 100644
--- a/module/plugins/hoster/YourfilesTo.py
+++ b/module/plugins/hoster/YourfilesTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster
class YourfilesTo(Hoster):
__name__ = "YourfilesTo"
__type__ = "hoster"
- __version__ = "0.23"
+ __version__ = "0.24"
__pattern__ = r'http://(?:www\.)?yourfiles\.(to|biz)/\?d=\w+'
@@ -32,7 +32,7 @@ class YourfilesTo(Hoster):
self.pyfile.name = self.get_file_name()
wait_time = self.get_waiting_time()
- self.setWait(wait_time)
+ self.set_wait(wait_time)
self.wait()
diff --git a/module/plugins/hoster/YoutubeCom.py b/module/plugins/hoster/YoutubeCom.py
index c4e1ebf28..248fc3715 100644
--- a/module/plugins/hoster/YoutubeCom.py
+++ b/module/plugins/hoster/YoutubeCom.py
@@ -33,7 +33,7 @@ def which(program):
class YoutubeCom(Hoster):
__name__ = "YoutubeCom"
__type__ = "hoster"
- __version__ = "0.43"
+ __version__ = "0.44"
__pattern__ = r'https?://(?:[^/]*\.)?(youtube\.com|youtu\.be)/watch\?(?:.*&)?v=.+'
__config__ = [("quality", "sd;hd;fullhd;240p;360p;480p;720p;1080p;3072p", "Quality Setting" , "hd" ),
@@ -80,8 +80,8 @@ class YoutubeCom(Hoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
+ self.resume_download = True
+ self.multi_dl = True
def process(self, pyfile):
@@ -92,10 +92,10 @@ class YoutubeCom(Hoster):
self.offline()
if "We have been receiving a large volume of requests from your network." in html:
- self.tempOffline()
+ self.temp_offline()
- #get config
- use3d = self.getConfig('3d')
+ # get config
+ use3d = self.get_config('3d')
if use3d:
quality = {"sd": 82, "hd": 84, "fullhd": 85, "240p": 83, "360p": 82,
@@ -104,27 +104,27 @@ class YoutubeCom(Hoster):
quality = {"sd": 18, "hd": 22, "fullhd": 37, "240p": 5, "360p": 18,
"480p": 35, "720p": 22, "1080p": 37, "3072p": 38}
- desired_fmt = self.getConfig('fmt')
+ desired_fmt = self.get_config('fmt')
if not desired_fmt:
- desired_fmt = quality.get(self.getConfig('quality'), 18)
+ desired_fmt = quality.get(self.get_config('quality'), 18)
elif desired_fmt not in self.formats:
- self.logWarning(_("FMT %d unknown, using default") % desired_fmt)
+ self.log_warning(_("FMT %d unknown, using default") % desired_fmt)
desired_fmt = 0
- #parse available streams
+ # parse available streams
streams = re.search(r'"url_encoded_fmt_stream_map":"(.+?)",', html).group(1)
streams = [x.split('\u0026') for x in streams.split(',')]
streams = [dict((y.split('=', 1)) for y in x) for x in streams]
streams = [(int(x['itag']), urllib.unquote(x['url'])) for x in streams]
- #: self.logDebug("Found links: %s" % streams)
+ #: self.log_debug("Found links: %s" % streams)
- self.logDebug("AVAILABLE STREAMS: %s" % [x[0] for x in streams])
+ self.log_debug("AVAILABLE STREAMS: %s" % [x[0] for x in streams])
- #build dictionary of supported itags (3D/2D)
- allowed = lambda x: self.getConfig(self.formats[x][0])
+ # build dictionary of supported itags (3D/2D)
+ allowed = lambda x: self.get_config(self.formats[x][0])
streams = [x for x in streams if x[0] in self.formats and allowed(x[0])]
if not streams:
@@ -132,36 +132,36 @@ class YoutubeCom(Hoster):
fmt_dict = dict([x for x in streams if self.formats[x[0]][4] == use3d] or streams)
- self.logDebug("DESIRED STREAM: ITAG:%d (%s) %sfound, %sallowed" %
+ self.log_debug("DESIRED STREAM: ITAG:%d (%s) %sfound, %sallowed" %
(desired_fmt, "%s %dx%d Q:%d 3D:%s" % self.formats[desired_fmt],
"" if desired_fmt in fmt_dict else "NOT ", "" if allowed(desired_fmt) else "NOT "))
- #return fmt nearest to quality index
+ # return fmt nearest to quality index
if desired_fmt in fmt_dict and allowed(desired_fmt):
fmt = desired_fmt
else:
sel = lambda x: self.formats[x][3] #: select quality index
comp = lambda x, y: abs(sel(x) - sel(y))
- self.logDebug("Choosing nearest fmt: %s" % [(x, allowed(x), comp(x, desired_fmt)) for x in fmt_dict.keys()])
+ self.log_debug("Choosing nearest fmt: %s" % [(x, allowed(x), comp(x, desired_fmt)) for x in fmt_dict.keys()])
fmt = reduce(lambda x, y: x if comp(x, desired_fmt) <= comp(y, desired_fmt) and
sel(x) > sel(y) else y, fmt_dict.keys())
- self.logDebug("Chosen fmt: %s" % fmt)
+ self.log_debug("Chosen fmt: %s" % fmt)
url = fmt_dict[fmt]
- self.logDebug("URL: %s" % url)
+ self.log_debug("URL: %s" % url)
- #set file name
+ # set file name
file_suffix = self.formats[fmt][0] if fmt in self.formats else ".flv"
file_name_pattern = '<meta name="title" content="(.+?)">'
name = re.search(file_name_pattern, html).group(1).replace("/", "")
#: Cleaning invalid characters from the file name
name = name.encode('ascii', 'replace')
- for c in self.invalidChars:
+ for c in self.invalid_chars:
name = name.replace(c, '_')
pyfile.name = html_unescape(name)
diff --git a/module/plugins/hoster/ZDF.py b/module/plugins/hoster/ZDF.py
index 2a4708a0d..4829f1bf8 100644
--- a/module/plugins/hoster/ZDF.py
+++ b/module/plugins/hoster/ZDF.py
@@ -10,7 +10,7 @@ from module.plugins.internal.Hoster import Hoster
class ZDF(Hoster):
__name__ = "ZDF Mediathek"
__type__ = "hoster"
- __version__ = "0.81"
+ __version__ = "0.82"
__pattern__ = r'http://(?:www\.)?zdf\.de/ZDFmediathek/\D*(\d+)\D*'
diff --git a/module/plugins/hoster/ZShareNet.py b/module/plugins/hoster/ZShareNet.py
index 6e4508a18..10925b1b8 100644
--- a/module/plugins/hoster/ZShareNet.py
+++ b/module/plugins/hoster/ZShareNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
class ZShareNet(DeadHoster):
__name__ = "ZShareNet"
__type__ = "hoster"
- __version__ = "0.21"
+ __version__ = "0.22"
__pattern__ = r'https?://(?:ww[2w]\.)?zshares?\.net/.+'
__config__ = [] #@TODO: Remove in 0.4.10
diff --git a/module/plugins/hoster/ZahikiNet.py b/module/plugins/hoster/ZahikiNet.py
index b2705662b..ad0abc098 100644
--- a/module/plugins/hoster/ZahikiNet.py
+++ b/module/plugins/hoster/ZahikiNet.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class ZahikiNet(SimpleHoster):
__name__ = "ZahikiNet"
__type__ = "hoster"
- __version__ = "0.01"
+ __version__ = "0.02"
__pattern__ = r'https?://(?:www\.)?zahiki\.net/\w+/.+'
@@ -24,9 +24,9 @@ class ZahikiNet(SimpleHoster):
def setup(self):
- self.resumeDownload = True
- self.multiDL = True
- self.limitDL = 6
+ self.resume_download = True
+ self.multi_dl = True
+ self.limit_dl = 6
getInfo = create_getInfo(ZahikiNet)
diff --git a/module/plugins/hoster/ZeveraCom.py b/module/plugins/hoster/ZeveraCom.py
index 85a813acf..2dfd9896c 100644
--- a/module/plugins/hoster/ZeveraCom.py
+++ b/module/plugins/hoster/ZeveraCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo
class ZeveraCom(MultiHoster):
__name__ = "ZeveraCom"
__type__ = "hoster"
- __version__ = "0.31"
+ __version__ = "0.32"
__pattern__ = r'https?://(?:www\.)zevera\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -24,7 +24,7 @@ class ZeveraCom(MultiHoster):
FILE_ERRORS = [("Error", r'action="ErrorDownload.aspx')]
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
self.link = "https://%s/getFiles.ashx?ourl=%s" % (self.account.HOSTER_DOMAIN, pyfile.url)
diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py
index 302554624..80d495f78 100644
--- a/module/plugins/hoster/ZippyshareCom.py
+++ b/module/plugins/hoster/ZippyshareCom.py
@@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class ZippyshareCom(SimpleHoster):
__name__ = "ZippyshareCom"
__type__ = "hoster"
- __version__ = "0.79"
+ __version__ = "0.80"
__pattern__ = r'http://www\d{0,2}\.zippyshare\.com/v(/|iew\.jsp.*key=)(?P<KEY>[\w^_]+)'
__config__ = [("use_premium", "bool", "Use premium account if available", True)]
@@ -33,12 +33,12 @@ class ZippyshareCom(SimpleHoster):
def setup(self):
- self.chunkLimit = -1
- self.multiDL = True
- self.resumeDownload = True
+ self.chunk_limit = -1
+ self.multi_dl = True
+ self.resume_download = True
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
@@ -65,7 +65,7 @@ class ZippyshareCom(SimpleHoster):
#: meant to be populated with the initialization of all the DOM elements found in the scripts
initScripts = set()
- def replElementById(element):
+ def repl_element_by_id(element):
id = element.group(1) #: id might be either 'x' (a real id) or x (a variable)
attr = element.group(4) #: attr might be None
@@ -81,7 +81,7 @@ class ZippyshareCom(SimpleHoster):
#: handle all getElementById
reVar = r'document.getElementById\(([\'"\w-]+)\)(\.)?(getAttribute\([\'"])?(\w+)?([\'"]\))?'
- scripts = [re.sub(reVar, replElementById, script) for script in scripts if script]
+ scripts = [re.sub(reVar, repl_element_by_id, script) for script in scripts if script]
#: add try/catch in JS to handle deliberate errors
scripts = ['\n'.join(('try{', script, '} catch(err){}')) for script in scripts]
diff --git a/module/plugins/internal/Account.py b/module/plugins/internal/Account.py
index d2efe7996..9e0efaee6 100644
--- a/module/plugins/internal/Account.py
+++ b/module/plugins/internal/Account.py
@@ -16,7 +16,7 @@ class WrongPassword(Exception):
class Account(Plugin):
__name__ = "Account"
__type__ = "account"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """Base account plugin"""
__license__ = "GPLv3"
@@ -37,7 +37,7 @@ class Account(Plugin):
self.init()
- self.setAccounts(accounts)
+ self.set_accounts(accounts)
def init(self):
@@ -60,18 +60,18 @@ class Account(Plugin):
#: set timestamp for login
self.timestamps[user] = time.time()
- req = self.getAccountRequest(user)
+ req = self.get_account_request(user)
try:
self.login(user, data, req)
except WrongPassword:
- self.logWarning(
+ self.log_warning(
_("Could not login with account %(user)s | %(msg)s") % {"user": user,
"msg": _("Wrong Password")})
success = data['valid'] = False
except Exception, e:
- self.logWarning(
+ self.log_warning(
_("Could not login with account %(user)s | %(msg)s") % {"user": user,
"msg": e})
success = data['valid'] = False
@@ -88,7 +88,7 @@ class Account(Plugin):
def relogin(self, user):
- req = self.getAccountRequest(user)
+ req = self.get_account_request(user)
if req:
req.cj.clear()
req.close()
@@ -98,14 +98,14 @@ class Account(Plugin):
return self._login(user, self.accounts[user])
- def setAccounts(self, accounts):
+ def set_accounts(self, accounts):
self.accounts = accounts
for user, data in self.accounts.iteritems():
self._login(user, data)
self.infos[user] = {}
- def updateAccounts(self, user, password=None, options={}):
+ def update_accounts(self, user, password=None, options={}):
"""
Updates account and return true if anything changed
"""
@@ -125,7 +125,12 @@ class Account(Plugin):
return True
- def removeAccount(self, user):
+ #: Deprecated method, use `update_accounts` instead
+ def updateAccounts(self, *args, **kwargs):
+ return self.update_accounts(*args, **kwargs)
+
+
+ def remove_account(self, user):
if user in self.accounts:
del self.accounts[user]
if user in self.infos:
@@ -134,28 +139,33 @@ class Account(Plugin):
del self.timestamps[user]
+ #: Deprecated method, use `remove_account` instead
+ def removeAccount(self, *args, **kwargs):
+ return self.remove_account(*args, **kwargs)
+
+
@lock
- def getAccountInfo(self, name, force=False):
+ def get_account_info(self, name, force=False):
"""
Retrieve account infos for an user, do **not** overwrite this method!\\
- just use it to retrieve infos in hoster plugins. see `loadAccountInfo`
+ just use it to retrieve infos in hoster plugins. see `load_account_info`
:param name: username
:param force: reloads cached account information
:return: dictionary with information
"""
- data = Account.loadAccountInfo(self, name)
+ data = Account.load_account_info(self, name)
if force or name not in self.infos:
- self.logDebug("Get Account Info for %s" % name)
- req = self.getAccountRequest(name)
+ self.log_debug("Get Account Info for %s" % name)
+ req = self.get_account_request(name)
try:
- infos = self.loadAccountInfo(name, req)
+ infos = self.load_account_info(name, req)
if not type(infos) == dict:
raise Exception("Wrong return format")
except Exception, e:
- infos = super(self.__class__, self).loadAccountInfo(name, req)
+ infos = super(self.__class__, self).load_account_info(name, req)
infos['error'] = str(e)
if self.core.debug:
@@ -164,24 +174,24 @@ class Account(Plugin):
if req:
req.close()
- self.logDebug("Account Info: %s" % infos)
+ self.log_debug("Account Info: %s" % infos)
infos['timestamp'] = time.time()
self.infos[name] = infos
elif "timestamp" in self.infos[name] and self.infos[name]['timestamp'] + self.info_threshold * 60 < time.time():
- self.logDebug("Reached timeout for account data")
- self.scheduleRefresh(name)
+ self.log_debug("Reached timeout for account data")
+ self.schedule_refresh(name)
data.update(self.infos[name])
return data
- def isPremium(self, user):
- info = self.getAccountInfo(user)
+ def is_premium(self, user):
+ info = self.get_account_info(user)
return info['premium']
- def loadAccountInfo(self, name, req=None):
+ def load_account_info(self, name, req=None):
"""
This should be overwritten in account plugin,\
and retrieving account information for user
@@ -202,20 +212,25 @@ class Account(Plugin):
"type" : self.__name__}
- def getAllAccounts(self, force=False):
- return [self.getAccountInfo(user, force) for user, data in self.accounts.iteritems()]
+ def get_all_accounts(self, force=False):
+ return [self.get_account_info(user, force) for user, data in self.accounts.iteritems()]
- def getAccountRequest(self, user=None):
+ #: Deprecated method, use `get_all_accounts` instead
+ def getAllAccounts(self, *args, **kwargs):
+ return self.get_all_accounts(*args, **kwargs)
+
+
+ def get_account_request(self, user=None):
if not user:
- user, data = self.selectAccount()
+ user, data = self.select_account()
return self.core.requestFactory.getRequest(self.__name__, user)
- def getAccountCookies(self, user=None):
+ def get_account_cookies(self, user=None):
if not user:
- user, data = self.selectAccount()
+ user, data = self.select_account()
if not user:
return None
@@ -223,11 +238,11 @@ class Account(Plugin):
return cj
- def getAccountData(self, user):
+ def get_account_data(self, user):
return self.accounts[user]
- def selectAccount(self):
+ def select_account(self):
"""
Returns an valid account name and data
"""
@@ -244,7 +259,7 @@ class Account(Plugin):
if not compare_time(start.split(":"), end.split(":")):
continue
except Exception:
- self.logWarning(_("Your Time %s has wrong format, use: 1:22-3:44") % time_data)
+ self.log_warning(_("Your Time %s has wrong format, use: 1:22-3:44") % time_data)
if user in self.infos:
if "validuntil" in self.infos[user]:
@@ -262,52 +277,57 @@ class Account(Plugin):
return random.choice(usable)
- def canUse(self):
- return self.selectAccount() != (None, None)
+ def can_use(self):
+ return self.select_account() != (None, None)
- def parseTraffic(self, value, unit=None): #: return kilobytes
+ def parse_traffic(self, value, unit=None): #: return kilobytes
if not unit and not isinstance(value, basestring):
unit = "KB"
return parseFileSize(value, unit)
- def wrongPassword(self):
+ def wrong_password(self):
raise WrongPassword
def empty(self, user):
if user in self.infos:
- self.logWarning(_("Account %s has not enough traffic, checking again in 30min") % user)
+ self.log_warning(_("Account %s has not enough traffic, checking again in 30min") % user)
self.infos[user].update({"trafficleft": 0})
- self.scheduleRefresh(user, 30 * 60)
+ self.schedule_refresh(user, 30 * 60)
def expired(self, user):
if user in self.infos:
- self.logWarning(_("Account %s is expired, checking again in 1h") % user)
+ self.log_warning(_("Account %s is expired, checking again in 1h") % user)
self.infos[user].update({"validuntil": time.time() - 1})
- self.scheduleRefresh(user, 60 * 60)
+ self.schedule_refresh(user, 60 * 60)
- def scheduleRefresh(self, user, time=0, force=True):
+ def schedule_refresh(self, user, time=0, force=True):
"""
Add task to refresh account info to sheduler
"""
- self.logDebug("Scheduled Account refresh for %s in %s seconds." % (user, time))
- self.core.scheduler.addJob(time, self.getAccountInfo, [user, force])
+ self.log_debug("Scheduled Account refresh for %s in %s seconds." % (user, time))
+ self.core.scheduler.addJob(time, self.get_account_info, [user, force])
+
+
+ #: Deprecated method, use `schedule_refresh` instead
+ def scheduleRefresh(self, *args, **kwargs):
+ return self.schedule_refresh(*args, **kwargs)
@lock
- def checkLogin(self, user):
+ def check_login(self, user):
"""
Checks if user is still logged in
"""
if user in self.timestamps:
if self.login_timeout > 0 and self.timestamps[user] + self.login_timeout * 60 < time.time():
- self.logDebug("Reached login timeout for %s" % user)
+ self.log_debug("Reached login timeout for %s" % user)
return self.relogin(user)
else:
return True
diff --git a/module/plugins/internal/AdYouLike.py b/module/plugins/internal/AdYouLike.py
index f623ed268..07e7e4d17 100644
--- a/module/plugins/internal/AdYouLike.py
+++ b/module/plugins/internal/AdYouLike.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha
class AdYouLike(Captcha):
__name__ = "AdYouLike"
__type__ = "captcha"
- __version__ = "0.06"
+ __version__ = "0.07"
__description__ = """AdYouLike captcha service plugin"""
__license__ = "GPLv3"
@@ -27,10 +27,10 @@ class AdYouLike(Captcha):
n = re.search(self.CALLBACK_PATTERN, html)
if m and n:
self.key = (m.group(1).strip(), n.group(1).strip())
- self.logDebug("Ayl: %s | Callback: %s" % self.key)
+ self.log_debug("Ayl: %s | Callback: %s" % self.key)
return self.key #: key is the tuple(ayl, callback)
else:
- self.logWarning("Ayl or callback pattern not found")
+ self.log_warning("Ayl or callback pattern not found")
return None
@@ -51,7 +51,7 @@ class AdYouLike(Captcha):
except AttributeError:
self.fail(_("AdYouLike challenge pattern not found"))
- self.logDebug("Challenge: %s" % challenge)
+ self.log_debug("Challenge: %s" % challenge)
return self.result(ayl, challenge), challenge
@@ -86,6 +86,6 @@ class AdYouLike(Captcha):
'_ayl_token_challenge': challenge['token'],
'_ayl_response' : response}
- self.logDebug("Result: %s" % result)
+ self.log_debug("Result: %s" % result)
return result
diff --git a/module/plugins/internal/AdsCaptcha.py b/module/plugins/internal/AdsCaptcha.py
index e058352dd..b45a6dfda 100644
--- a/module/plugins/internal/AdsCaptcha.py
+++ b/module/plugins/internal/AdsCaptcha.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha
class AdsCaptcha(Captcha):
__name__ = "AdsCaptcha"
__type__ = "captcha"
- __version__ = "0.09"
+ __version__ = "0.10"
__description__ = """AdsCaptcha captcha service plugin"""
__license__ = "GPLv3"
@@ -27,10 +27,10 @@ class AdsCaptcha(Captcha):
n = re.search(self.CAPTCHAID_PATTERN, html)
if m and n:
self.key = (m.group(1).strip(), n.group(1).strip()) #: key is the tuple(PublicKey, CaptchaId)
- self.logDebug("Key: %s | ID: %s" % self.key)
+ self.log_debug("Key: %s | ID: %s" % self.key)
return self.key
else:
- self.logWarning("Key or id pattern not found")
+ self.log_warning("Key or id pattern not found")
return None
@@ -47,7 +47,7 @@ class AdsCaptcha(Captcha):
except AttributeError:
self.fail(_("AdsCaptcha challenge pattern not found"))
- self.logDebug("Challenge: %s" % challenge)
+ self.log_debug("Challenge: %s" % challenge)
return self.result(server, challenge), challenge
@@ -58,6 +58,6 @@ class AdsCaptcha(Captcha):
cookies=True,
imgtype="jpg")
- self.logDebug("Result: %s" % result)
+ self.log_debug("Result: %s" % result)
return result
diff --git a/module/plugins/internal/Captcha.py b/module/plugins/internal/Captcha.py
index 4629c9522..50ebea89c 100644
--- a/module/plugins/internal/Captcha.py
+++ b/module/plugins/internal/Captcha.py
@@ -6,7 +6,7 @@ from module.plugins.internal.Plugin import Plugin
class Captcha(Plugin):
__name__ = "Captcha"
__type__ = "captcha"
- __version__ = "0.30"
+ __version__ = "0.31"
__description__ = """Base captcha service plugin"""
__license__ = "GPLv3"
diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py
index fc1a93606..91b5a6f76 100644
--- a/module/plugins/internal/Container.py
+++ b/module/plugins/internal/Container.py
@@ -12,7 +12,7 @@ from module.utils import save_join as fs_join
class Container(Crypter):
__name__ = "Container"
__type__ = "container"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'^unmatchable$'
__config__ = [] #: [("name", "type", "desc", "default")]
diff --git a/module/plugins/internal/Crypter.py b/module/plugins/internal/Crypter.py
index d8cda17d4..f6d3528fd 100644
--- a/module/plugins/internal/Crypter.py
+++ b/module/plugins/internal/Crypter.py
@@ -9,7 +9,7 @@ from module.utils import save_path as safe_filename
class Crypter(Hoster):
__name__ = "Crypter"
__type__ = "crypter"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'^unmatchable$'
__config__ = [("use_subfolder", "bool", "Save package to subfolder", True), #: Overrides core.config.get("general", "folder_per_package")
@@ -69,11 +69,11 @@ class Crypter(Hoster):
package_queue = self.pyfile.package().queue
folder_per_package = self.core.config.get("general", "folder_per_package")
- use_subfolder = self.getConfig('use_subfolder', folder_per_package)
- subfolder_per_package = self.getConfig('subfolder_per_package', True)
+ use_subfolder = self.get_config('use_subfolder', folder_per_package)
+ subfolder_per_package = self.get_config('subfolder_per_package', True)
for name, links, folder in self.packages:
- self.logDebug("Parsed package: %s" % name,
+ self.log_debug("Parsed package: %s" % name,
"%d links" % len(links),
"Saved to folder: %s" % folder if folder else "Saved to download folder")
@@ -88,14 +88,14 @@ class Crypter(Hoster):
if use_subfolder:
if not subfolder_per_package:
setFolder(package_folder)
- self.logDebug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder})
+ self.log_debug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder})
elif not folder_per_package or name != folder:
if not folder:
folder = urlparse.urlparse(name).path.split("/")[-1]
setFolder(safe_filename(folder))
- self.logDebug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder})
+ self.log_debug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder})
elif folder_per_package:
setFolder(None)
diff --git a/module/plugins/internal/DeadCrypter.py b/module/plugins/internal/DeadCrypter.py
index ef0d12b91..d79551b52 100644
--- a/module/plugins/internal/DeadCrypter.py
+++ b/module/plugins/internal/DeadCrypter.py
@@ -7,7 +7,7 @@ from module.plugins.internal.SimpleCrypter import create_getInfo
class DeadCrypter(Crypter):
__name__ = "DeadCrypter"
__type__ = "crypter"
- __version__ = "0.06"
+ __version__ = "0.07"
__pattern__ = r'^unmatchable$'
@@ -17,8 +17,8 @@ class DeadCrypter(Crypter):
@classmethod
- def apiInfo(cls, *args, **kwargs):
- api = super(DeadCrypter, cls).apiInfo(*args, **kwargs)
+ def api_info(cls, *args, **kwargs):
+ api = super(DeadCrypter, cls).api_info(*args, **kwargs)
api['status'] = 1
return api
diff --git a/module/plugins/internal/DeadHoster.py b/module/plugins/internal/DeadHoster.py
index accb15a78..86f4381a3 100644
--- a/module/plugins/internal/DeadHoster.py
+++ b/module/plugins/internal/DeadHoster.py
@@ -7,7 +7,7 @@ from module.plugins.internal.SimpleHoster import create_getInfo
class DeadHoster(Hoster):
__name__ = "DeadHoster"
__type__ = "hoster"
- __version__ = "0.16"
+ __version__ = "0.17"
__pattern__ = r'^unmatchable$'
@@ -17,8 +17,8 @@ class DeadHoster(Hoster):
@classmethod
- def apiInfo(cls, *args, **kwargs):
- api = super(DeadHoster, cls).apiInfo(*args, **kwargs)
+ def api_info(cls, *args, **kwargs):
+ api = super(DeadHoster, cls).api_info(*args, **kwargs)
api['status'] = 1
return api
diff --git a/module/plugins/internal/Extractor.py b/module/plugins/internal/Extractor.py
index f73388d8c..60d8b3b3b 100644
--- a/module/plugins/internal/Extractor.py
+++ b/module/plugins/internal/Extractor.py
@@ -22,7 +22,7 @@ class PasswordError(Exception):
class Extractor(Plugin):
__name__ = "Extractor"
__type__ = "extractor"
- __version__ = "0.24"
+ __version__ = "0.25"
__description__ = """Base extractor plugin"""
__license__ = "GPLv3"
@@ -36,18 +36,18 @@ class Extractor(Plugin):
@classmethod
- def isArchive(cls, filename):
+ def is_archive(cls, filename):
name = os.path.basename(filename).lower()
return any(name.endswith(ext) for ext in cls.EXTENSIONS)
@classmethod
- def isMultipart(cls, filename):
+ def is_multipart(cls, filename):
return False
@classmethod
- def isUsable(cls):
+ def is_usable(cls):
"""
Check if system statisfy dependencies
:return: boolean
@@ -56,7 +56,7 @@ class Extractor(Plugin):
@classmethod
- def getTargets(cls, files_ids):
+ def get_targets(cls, files_ids):
"""
Filter suited targets from list of filename id tuple list
:param files_ids: List of filepathes
@@ -97,7 +97,7 @@ class Extractor(Plugin):
self.files = [] #: Store extracted files here
pyfile = self.manager.core.files.getFile(fid) if fid else None
- self.notifyProgress = lambda x: pyfile.setProgress(x) if pyfile else lambda x: None
+ self.notify_progress = lambda x: pyfile.setProgress(x) if pyfile else lambda x: None
def init(self):
@@ -149,7 +149,7 @@ class Extractor(Plugin):
raise NotImplementedError
- def getDeleteFiles(self):
+ def get_delete_files(self):
"""
Return list of files to delete, do *not* delete them here.
diff --git a/module/plugins/internal/Hook.py b/module/plugins/internal/Hook.py
index 5959089b5..7ef8f0189 100644
--- a/module/plugins/internal/Hook.py
+++ b/module/plugins/internal/Hook.py
@@ -25,7 +25,7 @@ def threaded(fn):
class Hook(Plugin):
__name__ = "Hook"
__type__ = "hook"
- __version__ = "0.08"
+ __version__ = "0.09"
__config__ = [] #: [("name", "type", "desc", "default")]
__threaded__ = [] #@TODO: Remove in 0.4.10
@@ -72,7 +72,7 @@ class Hook(Plugin):
self.event_map = None
if self.event_list:
- self.logDebug("Deprecated method `event_list`, use `event_map` instead")
+ self.log_debug("Deprecated method `event_list`, use `event_map` instead")
for f in self.event_list:
self.manager.addEvent(f, getattr(self, f))
@@ -85,8 +85,8 @@ class Hook(Plugin):
#: Deprecated method, use `init_periodical` instead
- def initPeriodical(self):
- return self.init_periodical()
+ def initPeriodical(self, *args, **kwargs):
+ return self.init_periodical(*args, **kwargs)
def _periodical(self, threaded):
@@ -98,7 +98,7 @@ class Hook(Plugin):
self.periodical()
except Exception, e:
- self.logError(_("Error executing hook: %s") % e)
+ self.log_error(_("Error executing hook: %s") % e)
if self.core.debug:
traceback.print_exc()
@@ -124,12 +124,12 @@ class Hook(Plugin):
"""
Checks if hook is activated
"""
- return self.getConfig("activated")
+ return self.get_config("activated")
#: Deprecated method, use `is_activated` instead
- def isActivated(self):
- return self.is_activated()
+ def isActivated(self, *args, **kwargs):
+ return self.is_activated(*args, **kwargs)
def deactivate(self):
@@ -140,8 +140,8 @@ class Hook(Plugin):
#: Deprecated method, use `deactivate` instead
- def unload(self):
- return self.deactivate()
+ def unload(self, *args, **kwargs):
+ return self.deactivate(*args, **kwargs)
def activate(self):
@@ -152,8 +152,8 @@ class Hook(Plugin):
#: Deprecated method, use `activate` instead
- def coreReady(self):
- return self.activate()
+ def coreReady(self, *args, **kwargs):
+ return self.activate(*args, **kwargs)
def exit(self):
@@ -164,8 +164,8 @@ class Hook(Plugin):
#: Deprecated method, use `exit` instead
- def coreExiting(self):
- return self.exit()
+ def coreExiting(self, *args, **kwargs):
+ return self.exit(*args, **kwargs)
def download_preparing(self, pyfile):
@@ -173,8 +173,8 @@ class Hook(Plugin):
#: Deprecated method, use `download_preparing` instead
- def downloadPreparing(self, pyfile):
- return self.download_preparing(pyfile)
+ def downloadPreparing(self, *args, **kwargs):
+ return self.download_preparing(*args, **kwargs)
def download_finished(self, pyfile):
@@ -182,8 +182,8 @@ class Hook(Plugin):
#: Deprecated method, use `download_finished` instead
- def downloadFinished(self, pyfile):
- return self.download_finished(pyfile)
+ def downloadFinished(self, *args, **kwargs):
+ return self.download_finished(*args, **kwargs)
def download_failed(self, pyfile):
@@ -191,8 +191,8 @@ class Hook(Plugin):
#: Deprecated method, use `download_failed` instead
- def downloadFailed(self, pyfile):
- return self.download_failed(pyfile)
+ def downloadFailed(self, *args, **kwargs):
+ return self.download_failed(*args, **kwargs)
def package_finished(self, pypack):
@@ -200,8 +200,8 @@ class Hook(Plugin):
#: Deprecated method, use `package_finished` instead
- def packageFinished(self, pypack):
- return self.package_finished(pypack)
+ def packageFinished(self, *args, **kwargs):
+ return self.package_finished(*args, **kwargs)
def before_reconnect(self, ip):
@@ -209,8 +209,8 @@ class Hook(Plugin):
#: Deprecated method, use `before_reconnect` instead
- def beforeReconnecting(self, ip):
- return self.before_reconnect(ip)
+ def beforeReconnecting(self, *args, **kwargs):
+ return self.before_reconnect(*args, **kwargs)
def after_reconnect(self, ip, oldip):
@@ -230,8 +230,8 @@ class Hook(Plugin):
#: Deprecated method, use `captcha_task` instead
- def newCaptchaTask(self, task):
- return self.captcha_task(task)
+ def newCaptchaTask(self, *args, **kwargs):
+ return self.captcha_task(*args, **kwargs)
def captcha_correct(self, task):
@@ -239,8 +239,8 @@ class Hook(Plugin):
#: Deprecated method, use `captcha_correct` instead
- def captchaCorrect(self, task):
- return self.captcha_correct(task)
+ def captchaCorrect(self, *args, **kwargs):
+ return self.captcha_correct(*args, **kwargs)
def captcha_invalid(self, task):
@@ -248,5 +248,5 @@ class Hook(Plugin):
#: Deprecated method, use `captcha_invalid` instead
- def captchaInvalid(self, task):
- return self.captcha_invalid(task)
+ def captchaInvalid(self, *args, **kwargs):
+ return self.captcha_invalid(*args, **kwargs)
diff --git a/module/plugins/internal/Hoster.py b/module/plugins/internal/Hoster.py
index 92cb476ea..09672f6f0 100644
--- a/module/plugins/internal/Hoster.py
+++ b/module/plugins/internal/Hoster.py
@@ -16,15 +16,15 @@ from module.plugins.internal.Plugin import Plugin, Abort, Fail, Reconnect, Retry
from module.utils import fs_decode, fs_encode, save_join as fs_join
-def getInfo(urls):
- #result = [ .. (name, size, status, url) .. ]
+def get_info(urls):
+ # result = [ .. (name, size, status, url) .. ]
pass
class Hoster(Plugin):
__name__ = "Hoster"
__type__ = "hoster"
- __version__ = "0.03"
+ __version__ = "0.04"
__pattern__ = r'^unmatchable$'
__config__ = [] #: [("name", "type", "desc", "default")]
@@ -41,18 +41,18 @@ class Hoster(Plugin):
super(Hoster, self).__init__(pyfile.m.core)
#: engage wan reconnection
- self.wantReconnect = False
+ self.want_reconnect = False
#: enable simultaneous processing of multiple downloads
- self.multiDL = True
- self.limitDL = 0
+ self.multi_dl = True
+ self.limit_dl = 0
#: chunk limit
- self.chunkLimit = 1
- self.resumeDownload = False
+ self.chunk_limit = 1
+ self.resume_download = False
#: time.time() + wait in seconds
- self.waitUntil = 0
+ self.wait_until = 0
self.waiting = False
#: captcha reader instance
@@ -75,10 +75,10 @@ class Hoster(Plugin):
#: Browser instance, see `network.Browser`
self.req = self.account.getAccountRequest(self.user)
- self.chunkLimit = -1 #: chunk limit, -1 for unlimited
+ self.chunk_limit = -1 #: chunk limit, -1 for unlimited
#: enables resume (will be ignored if server dont accept chunks)
- self.resumeDownload = True
+ self.resume_download = True
#: premium status
self.premium = self.account.isPremium(self.user)
@@ -91,16 +91,16 @@ class Hoster(Plugin):
self.thread = None #: holds thread in future
#: location where the last call to download was saved
- self.lastDownload = ""
+ self.last_download = ""
#: re match of the last call to `checkDownload`
- self.lastCheck = None
+ self.last_check = None
#: js engine, see `JsEngine`
self.js = self.core.js
#: captcha task
- self.cTask = None
+ self.c_task = None
#: some plugins store html code here
self.html = None
@@ -150,13 +150,13 @@ class Hoster(Plugin):
raise NotImplementedError
- def getChunkCount(self):
- if self.chunkLimit <= 0:
+ def get_chunk_count(self):
+ if self.chunk_limit <= 0:
return self.core.config.get("download", "chunks")
- return min(self.core.config.get("download", "chunks"), self.chunkLimit)
+ return min(self.core.config.get("download", "chunks"), self.chunk_limit)
- def resetAccount(self):
+ def reset_account(self):
"""
Don't use account and retry download
"""
@@ -165,13 +165,13 @@ class Hoster(Plugin):
self.retry()
- def setReconnect(self, reconnect):
+ def set_reconnect(self, reconnect):
reconnect = bool(reconnect)
- self.logDebug("Set wantReconnect to: %s (previous: %s)" % (reconnect, self.wantReconnect))
- self.wantReconnect = reconnect
+ self.log_debug("Set wantReconnect to: %s (previous: %s)" % (reconnect, self.want_reconnect))
+ self.want_reconnect = reconnect
- def setWait(self, seconds, reconnect=None):
+ def set_wait(self, seconds, reconnect=None):
"""
Set a specific wait time later used with `wait`
@@ -181,13 +181,13 @@ class Hoster(Plugin):
wait_time = max(int(seconds), 1)
wait_until = time.time() + wait_time + 1
- self.logDebug("Set waitUntil to: %f (previous: %f)" % (wait_until, self.pyfile.waitUntil),
+ self.log_debug("Set waitUntil to: %f (previous: %f)" % (wait_until, self.pyfile.waitUntil),
"Wait: %d+1 seconds" % wait_time)
self.pyfile.waitUntil = wait_until
if reconnect is not None:
- self.setReconnect(reconnect)
+ self.set_reconnect(reconnect)
def wait(self, seconds=0, reconnect=None):
@@ -197,21 +197,21 @@ class Hoster(Plugin):
pyfile = self.pyfile
if seconds > 0:
- self.setWait(seconds)
+ self.set_wait(seconds)
if reconnect is not None:
- self.setReconnect(reconnect)
+ self.set_reconnect(reconnect)
self.waiting = True
status = pyfile.status
pyfile.setStatus("waiting")
- self.logInfo(_("Wait: %d seconds") % (pyfile.waitUntil - time.time()),
- _("Reconnect: %s") % self.wantReconnect)
+ self.log_info(_("Wait: %d seconds") % (pyfile.waitUntil - time.time()),
+ _("Reconnect: %s") % self.want_reconnect)
if self.account:
- self.logDebug("Ignore reconnection due account logged")
+ self.log_debug("Ignore reconnection due account logged")
while pyfile.waitUntil > time.time():
if pyfile.abort:
@@ -227,7 +227,7 @@ class Hoster(Plugin):
if self.thread.m.reconnecting.isSet():
self.waiting = False
- self.wantReconnect = False
+ self.want_reconnect = False
raise Reconnect
time.sleep(1)
@@ -262,7 +262,7 @@ class Hoster(Plugin):
raise Fail("offline")
- def tempOffline(self, reason=""):
+ def temp_offline(self, reason=""):
"""
Fail and indicates file ist temporary offline, the core may take consequences
"""
@@ -292,19 +292,19 @@ class Hoster(Plugin):
raise Retry(reason)
- def invalidCaptcha(self):
- self.logError(_("Invalid captcha"))
- if self.cTask:
- self.cTask.invalid()
+ def invalid_captcha(self):
+ self.log_error(_("Invalid captcha"))
+ if self.c_task:
+ self.c_task.invalid()
- def correctCaptcha(self):
- self.logInfo(_("Correct captcha"))
- if self.cTask:
- self.cTask.correct()
+ def correct_captcha(self):
+ self.log_info(_("Correct captcha"))
+ if self.c_task:
+ self.c_task.correct()
- def decryptCaptcha(self, url, get={}, post={}, cookies=False, forceUser=False,
+ def decrypt_captcha(self, url, get={}, post={}, cookies=False, forceUser=False,
imgtype='jpg', result_type='textual'):
"""
Loads a captcha and decrypts it with ocr, plugin, user input
@@ -345,7 +345,7 @@ class Hoster(Plugin):
else:
captchaManager = self.core.captchaManager
task = captchaManager.newTask(img, imgtype, tmpCaptcha.name, result_type)
- self.cTask = task
+ self.c_task = task
captchaManager.handleCaptcha(task)
while task.isWaiting():
@@ -364,7 +364,7 @@ class Hoster(Plugin):
self.fail(_("No captcha result obtained in appropiate time by any of the plugins"))
result = task.result
- self.logDebug("Received captcha result: %s" % result)
+ self.log_debug("Received captcha result: %s" % result)
if not self.core.debug:
try:
@@ -409,10 +409,10 @@ class Hoster(Plugin):
self.fail(_("No url given"))
if self.core.debug:
- self.logDebug("Download url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")])
+ self.log_debug("Download url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")])
- self.correctCaptcha()
- self.checkForSameFiles()
+ self.correct_captcha()
+ self.check_for_same_files()
self.pyfile.setStatus("downloading")
@@ -445,7 +445,7 @@ class Hoster(Plugin):
try:
newname = self.req.httpDownload(url, filename, get=get, post=post, ref=ref, cookies=cookies,
- chunks=self.getChunkCount(), resume=self.resumeDownload,
+ chunks=self.get_chunk_count(), resume=self.resume_download,
progressNotify=self.pyfile.setProgress, disposition=disposition)
finally:
self.pyfile.size = self.req.size
@@ -454,7 +454,7 @@ class Hoster(Plugin):
newname = urlparse.urlparse(newname).path.split('/')[-1]
if disposition and newname != name:
- self.logInfo(_("%(name)s saved as %(newname)s") % {"name": name, "newname": newname})
+ self.log_info(_("%(name)s saved as %(newname)s") % {"name": name, "newname": newname})
self.pyfile.name = newname
filename = os.path.join(location, newname)
@@ -464,7 +464,7 @@ class Hoster(Plugin):
try:
os.chmod(fs_filename, int(self.core.config.get("permission", "file"), 8))
except Exception, e:
- self.logWarning(_("Setting file mode failed"), e)
+ self.log_warning(_("Setting file mode failed"), e)
if self.core.config.get("permission", "change_dl") and os.name != "nt":
try:
@@ -473,13 +473,13 @@ class Hoster(Plugin):
os.chown(fs_filename, uid, gid)
except Exception, e:
- self.logWarning(_("Setting User and Group failed"), e)
+ self.log_warning(_("Setting User and Group failed"), e)
- self.lastDownload = filename
- return self.lastDownload
+ self.last_download = filename
+ return self.last_download
- def checkDownload(self, rules, delete=True, file_size=0, size_tolerance=1000, read_size=100000):
+ def check_download(self, rules, delete=True, file_size=0, size_tolerance=1000, read_size=100000):
"""
Checks the content of the last downloaded file, re match is saved to `lastCheck`
@@ -491,10 +491,10 @@ class Hoster(Plugin):
:return: dictionary key of the first rule that matched
"""
do_delete = False
- lastDownload = fs_encode(self.lastDownload)
+ lastDownload = fs_encode(self.last_download)
- if not self.lastDownload or not os.path.exists(lastDownload):
- self.lastDownload = ""
+ if not self.last_download or not os.path.exists(lastDownload):
+ self.last_download = ""
self.fail(self.pyfile.error or _("No file downloaded"))
try:
@@ -512,15 +512,15 @@ class Hoster(Plugin):
self.fail(_("File size mismatch"))
elif diff != 0:
- self.logWarning(_("File size is not equal to expected size"))
+ self.log_warning(_("File size is not equal to expected size"))
- self.logDebug("Download Check triggered")
+ self.log_debug("Download Check triggered")
with open(lastDownload, "rb") as f:
content = f.read(read_size)
#: produces encoding errors, better log to other file in the future?
- #: self.logDebug("Content: %s" % content)
+ #: self.log_debug("Content: %s" % content)
for name, rule in rules.iteritems():
if isinstance(rule, basestring):
if rule in content:
@@ -531,14 +531,14 @@ class Hoster(Plugin):
m = rule.search(content)
if m:
do_delete = True
- self.lastCheck = m
+ self.last_check = m
return name
finally:
if delete and do_delete:
os.remove(lastDownload)
- def directLink(self, url, follow_location=None):
+ def direct_link(self, url, follow_location=None):
link = ""
if follow_location is None:
@@ -548,11 +548,11 @@ class Hoster(Plugin):
redirect = max(follow_location, 1)
else:
- redirect = self.getConfig("maxredirs", plugin="UserAgentSwitcher")
+ redirect = self.get_config("maxredirs", plugin="UserAgentSwitcher")
for i in xrange(redirect):
try:
- self.logDebug("Redirect #%d to: %s" % (i, url))
+ self.log_debug("Redirect #%d to: %s" % (i, url))
header = self.load(url, just_header=True)
except Exception: #: Bad bad bad... rewrite this part in 0.4.10
@@ -618,18 +618,18 @@ class Hoster(Plugin):
else:
try:
- self.logError(_("Too many redirects"))
+ self.log_error(_("Too many redirects"))
except Exception:
pass
return link
- def parseHtmlForm(self, attr_str="", input_names={}):
+ def parse_html_form(self, attr_str="", input_names={}):
return parseHtmlForm(attr_str, self.html, input_names)
- def checkTrafficLeft(self):
+ def check_traffic_left(self):
if not self.account:
return True
@@ -641,18 +641,18 @@ class Hoster(Plugin):
return True
else:
size = self.pyfile.size / 1024
- self.logInfo(_("Filesize: %s KiB, Traffic left for user %s: %s KiB") % (size, self.user, traffic))
+ self.log_info(_("Filesize: %s KiB, Traffic left for user %s: %s KiB") % (size, self.user, traffic))
return size <= traffic
- def getPassword(self):
+ def get_password(self):
"""
Get the password the user provided in the package
"""
return self.pyfile.package().password or ""
- def checkForSameFiles(self, starting=False):
+ def check_for_same_files(self, starting=False):
"""
Checks if same file was/is downloaded within same package
@@ -681,7 +681,7 @@ class Hoster(Plugin):
if os.path.exists(location):
self.skip(pyfile[0])
- self.logDebug("File %s not skipped, because it does not exists." % self.pyfile.name)
+ self.log_debug("File %s not skipped, because it does not exists." % self.pyfile.name)
def clean(self):
diff --git a/module/plugins/internal/MultiHook.py b/module/plugins/internal/MultiHook.py
index 22b0fd7c6..623836cdc 100644
--- a/module/plugins/internal/MultiHook.py
+++ b/module/plugins/internal/MultiHook.py
@@ -11,7 +11,7 @@ from module.utils import decode, remove_chars
class MultiHook(Hook):
__name__ = "MultiHook"
__type__ = "hook"
- __version__ = "0.49"
+ __version__ = "0.50"
__config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"),
("pluginlist" , "str" , "Plugin list (comma separated)", "" ),
@@ -65,10 +65,10 @@ class MultiHook(Hook):
self.pluginname = None
self.plugintype = None
- self.initPlugin()
+ self.init_plugin()
- def initPlugin(self):
+ def init_plugin(self):
self.pluginname = self.__name__.rsplit("Hook", 1)[0]
plugin, self.plugintype = self.core.pluginManager.findPlugin(self.pluginname)
@@ -76,47 +76,47 @@ class MultiHook(Hook):
self.pluginmodule = self.core.pluginManager.loadModule(self.plugintype, self.pluginname)
self.pluginclass = getattr(self.pluginmodule, self.pluginname)
else:
- self.logWarning("Hook plugin will be deactivated due missing plugin reference")
- self.setConfig('activated', False)
+ self.log_warning("Hook plugin will be deactivated due missing plugin reference")
+ self.set_config('activated', False)
- def loadAccount(self):
+ def load_account(self):
self.account = self.core.accountManager.getAccountPlugin(self.pluginname)
if self.account and not self.account.canUse():
self.account = None
if not self.account and hasattr(self.pluginclass, "LOGIN_ACCOUNT") and self.pluginclass.LOGIN_ACCOUNT:
- self.logWarning("Hook plugin will be deactivated due missing account reference")
- self.setConfig('activated', False)
+ self.log_warning("Hook plugin will be deactivated due missing account reference")
+ self.set_config('activated', False)
def activate(self):
self.init_periodical(threaded=True)
- def pluginsCached(self):
+ def plugins_cached(self):
if self.plugins:
return self.plugins
for _i in xrange(2):
try:
- pluginset = self._pluginSet(self.getHosters())
+ pluginset = self._plugin_set(self.get_hosters())
break
except Exception, e:
- self.logDebug(e, "Waiting 1 minute and retry")
+ self.log_debug(e, "Waiting 1 minute and retry")
time.sleep(60)
else:
- self.logWarning(_("Fallback to default reload interval due plugin parse error"))
+ self.log_warning(_("Fallback to default reload interval due plugin parse error"))
self.interval = self.MIN_RELOAD_INTERVAL
return list()
try:
- configmode = self.getConfig('pluginmode', 'all')
+ configmode = self.get_config('pluginmode', 'all')
if configmode in ("listed", "unlisted"):
- pluginlist = self.getConfig('pluginlist', '').replace('|', ',').replace(';', ',').split(',')
- configset = self._pluginSet(pluginlist)
+ pluginlist = self.get_config('pluginlist', '').replace('|', ',').replace(';', ',').split(',')
+ configset = self._plugin_set(pluginlist)
if configmode == "listed":
pluginset &= configset
@@ -124,14 +124,14 @@ class MultiHook(Hook):
pluginset -= configset
except Exception, e:
- self.logError(e)
+ self.log_error(e)
self.plugins = list(pluginset)
return self.plugins
- def _pluginSet(self, plugins):
+ def _plugin_set(self, plugins):
regexp = re.compile(r'^[\w\-.^_]{3,63}\.[a-zA-Z]{2,}$', re.U)
plugins = [decode(p.strip()).lower() for p in plugins if regexp.match(p.strip())]
@@ -143,7 +143,7 @@ class MultiHook(Hook):
return set(plugins)
- def getHosters(self):
+ def get_hosters(self):
"""
Load list of supported hoster
@@ -156,15 +156,15 @@ class MultiHook(Hook):
"""
Reload plugin list periodically
"""
- self.loadAccount()
+ self.load_account()
- if self.getConfig('reload', True):
- self.interval = max(self.getConfig('reloadinterval', 12) * 60 * 60, self.MIN_RELOAD_INTERVAL)
+ if self.get_config('reload', True):
+ self.interval = max(self.get_config('reloadinterval', 12) * 60 * 60, self.MIN_RELOAD_INTERVAL)
else:
self.core.scheduler.removeJob(self.cb)
self.cb = None
- self.logInfo(_("Reloading supported %s list") % self.plugintype)
+ self.log_info(_("Reloading supported %s list") % self.plugintype)
old_supported = self.supported
@@ -172,17 +172,17 @@ class MultiHook(Hook):
self.new_supported = []
self.plugins = []
- self.overridePlugins()
+ self.override_plugins()
old_supported = [plugin for plugin in old_supported if plugin not in self.supported]
if old_supported:
- self.logDebug("Unload: %s" % ", ".join(old_supported))
+ self.log_debug("Unload: %s" % ", ".join(old_supported))
for plugin in old_supported:
- self.unloadPlugin(plugin)
+ self.unload_plugin(plugin)
- def overridePlugins(self):
+ def override_plugins(self):
excludedList = []
if self.plugintype == "hoster":
@@ -192,7 +192,7 @@ class MultiHook(Hook):
pluginMap = {}
accountList = [name[::-1].replace("Folder"[::-1], "", 1).lower()[::-1] for name in self.core.pluginManager.crypterPlugins.iterkeys()]
- for plugin in self.pluginsCached():
+ for plugin in self.plugins_cached():
name = remove_chars(plugin, "-.")
if name in accountList:
@@ -204,11 +204,11 @@ class MultiHook(Hook):
self.new_supported.append(plugin)
if not self.supported and not self.new_supported:
- self.logError(_("No %s loaded") % self.plugintype)
+ self.log_error(_("No %s loaded") % self.plugintype)
return
#: inject plugin plugin
- self.logDebug("Overwritten %ss: %s" % (self.plugintype, ", ".join(sorted(self.supported))))
+ self.log_debug("Overwritten %ss: %s" % (self.plugintype, ", ".join(sorted(self.supported))))
for plugin in self.supported:
hdict = self.core.pluginManager.plugins[self.plugintype][plugin]
@@ -216,26 +216,26 @@ class MultiHook(Hook):
hdict['new_name'] = self.pluginname
if excludedList:
- self.logInfo(_("%ss not overwritten: %s") % (self.plugintype.capitalize(), ", ".join(sorted(excludedList))))
+ self.log_info(_("%ss not overwritten: %s") % (self.plugintype.capitalize(), ", ".join(sorted(excludedList))))
if self.new_supported:
plugins = sorted(self.new_supported)
- self.logDebug("New %ss: %s" % (self.plugintype, ", ".join(plugins)))
+ self.log_debug("New %ss: %s" % (self.plugintype, ", ".join(plugins)))
#: create new regexp
regexp = r'.*(?P<DOMAIN>%s).*' % "|".join(x.replace('.', '\.') for x in plugins)
if hasattr(self.pluginclass, "__pattern__") and isinstance(self.pluginclass.__pattern__, basestring) and "://" in self.pluginclass.__pattern__:
regexp = r'%s|%s' % (self.pluginclass.__pattern__, regexp)
- self.logDebug("Regexp: %s" % regexp)
+ self.log_debug("Regexp: %s" % regexp)
hdict = self.core.pluginManager.plugins[self.plugintype][self.pluginname]
hdict['pattern'] = regexp
hdict['re'] = re.compile(regexp)
- def unloadPlugin(self, plugin):
+ def unload_plugin(self, plugin):
hdict = self.core.pluginManager.plugins[self.plugintype][plugin]
if "module" in hdict:
hdict.pop('module', None)
@@ -250,7 +250,7 @@ class MultiHook(Hook):
Remove override for all plugins. Scheduler job is removed by hookmanager
"""
for plugin in self.supported:
- self.unloadPlugin(plugin)
+ self.unload_plugin(plugin)
#: reset pattern
hdict = self.core.pluginManager.plugins[self.plugintype][self.pluginname]
diff --git a/module/plugins/internal/MultiHoster.py b/module/plugins/internal/MultiHoster.py
index 2b3eb8941..8360d871e 100644
--- a/module/plugins/internal/MultiHoster.py
+++ b/module/plugins/internal/MultiHoster.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, r
class MultiHoster(SimpleHoster):
__name__ = "MultiHoster"
__type__ = "hoster"
- __version__ = "0.42"
+ __version__ = "0.43"
__pattern__ = r'^unmatchable$'
__config__ = [("use_premium" , "bool", "Use premium account if available" , True),
@@ -24,19 +24,19 @@ class MultiHoster(SimpleHoster):
def setup(self):
- self.chunkLimit = 1
- self.multiDL = bool(self.account)
- self.resumeDownload = self.premium
+ self.chunk_limit = 1
+ self.multi_dl = bool(self.account)
+ self.resume_download = self.premium
def prepare(self):
self.info = {}
self.html = ""
self.link = "" #@TODO: Move to Hoster in 0.4.10
- self.directDL = False #@TODO: Move to Hoster in 0.4.10
+ self.direct_d_l = False #@TODO: Move to Hoster in 0.4.10
- if not self.getConfig('use_premium', True):
- self.retryFree()
+ if not self.get_config('use_premium', True):
+ self.retry_free()
if self.LOGIN_ACCOUNT and not self.account:
self.fail(_("Required account not found"))
@@ -47,9 +47,9 @@ class MultiHoster(SimpleHoster):
set_cookies(self.req.cj, self.COOKIES)
if self.DIRECT_LINK is None:
- self.directDL = self.__pattern__ != r'^unmatchable$' and re.match(self.__pattern__, self.pyfile.url)
+ self.direct_d_l = self.__pattern__ != r'^unmatchable$' and re.match(self.__pattern__, self.pyfile.url)
else:
- self.directDL = self.DIRECT_LINK
+ self.direct_d_l = self.DIRECT_LINK
self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS)
@@ -58,36 +58,36 @@ class MultiHoster(SimpleHoster):
try:
self.prepare()
- if self.directDL:
- self.checkInfo()
- self.logDebug("Looking for direct download link...")
- self.handleDirect(pyfile)
+ if self.direct_d_l:
+ self.check_info()
+ self.log_debug("Looking for direct download link...")
+ self.handle_direct(pyfile)
- if not self.link and not self.lastDownload:
+ if not self.link and not self.last_download:
self.preload()
- self.checkErrors()
- self.checkStatus(getinfo=False)
+ self.check_errors()
+ self.check_status(getinfo=False)
- if self.premium and (not self.CHECK_TRAFFIC or self.checkTrafficLeft()):
- self.logDebug("Handled as premium download")
- self.handlePremium(pyfile)
+ if self.premium and (not self.CHECK_TRAFFIC or self.check_traffic_left()):
+ self.log_debug("Handled as premium download")
+ self.handle_premium(pyfile)
- elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.checkTrafficLeft()):
- self.logDebug("Handled as free download")
- self.handleFree(pyfile)
+ elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.check_traffic_left()):
+ self.log_debug("Handled as free download")
+ self.handle_free(pyfile)
self.download(self.link, ref=False, disposition=True)
- self.checkFile()
+ self.check_file()
except Fail, e: #@TODO: Move to PluginThread in 0.4.10
err = str(e) #@TODO: Recheck in 0.4.10
if self.premium:
- self.logWarning(_("Premium download failed"))
- self.retryFree()
+ self.log_warning(_("Premium download failed"))
+ self.retry_free()
- elif self.getConfig("revertfailed", True) \
+ elif self.get_config("revertfailed", True) \
and "new_module" in self.core.pluginManager.hosterPlugins[self.__name__]:
hdict = self.core.pluginManager.hosterPlugins[self.__name__]
@@ -107,11 +107,11 @@ class MultiHoster(SimpleHoster):
raise Fail(err)
- def handlePremium(self, pyfile):
- return self.handleFree(pyfile)
+ def handle_premium(self, pyfile):
+ return self.handle_free(pyfile)
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if self.premium:
raise NotImplementedError
else:
diff --git a/module/plugins/internal/OCR.py b/module/plugins/internal/OCR.py
index 0191a4938..880f8b570 100644
--- a/module/plugins/internal/OCR.py
+++ b/module/plugins/internal/OCR.py
@@ -20,7 +20,7 @@ from module.utils import save_join as fs_join
class OCR(Plugin):
__name__ = "OCR"
__type__ = "ocr"
- __version__ = "0.11"
+ __version__ = "0.12"
__description__ = """OCR base plugin"""
__license__ = "GPLv3"
@@ -71,7 +71,7 @@ class OCR(Plugin):
tmpTxt.close()
except IOError, e:
- self.logError(e)
+ self.log_error(e)
return
self.logger.debug("save tiff")
diff --git a/module/plugins/internal/Plugin.py b/module/plugins/internal/Plugin.py
index 9b110280e..0b08858f3 100644
--- a/module/plugins/internal/Plugin.py
+++ b/module/plugins/internal/Plugin.py
@@ -25,12 +25,12 @@ def set_cookies(cj, cookies):
cj.setCookie(domain, name, value)
-def parseHtmlTagAttrValue(attr_name, tag):
+def parse_html_tag_attr_value(attr_name, tag):
m = re.search(r"%s\s*=\s*([\"']?)((?<=\")[^\"]+|(?<=')[^']+|[^>\s\"'][^>\s]*)\1" % attr_name, tag, re.I)
return m.group(2) if m else None
-def parseHtmlForm(attr_str, html, input_names={}):
+def parse_html_form(attr_str, html, input_names={}):
for form in re.finditer(r"(?P<TAG><form[^>]*%s[^>]*>)(?P<CONTENT>.*?)</?(form|body|html)[^>]*>" % attr_str,
html, re.S | re.I):
inputs = {}
@@ -78,7 +78,7 @@ def chunks(iterable, size):
class Plugin(object):
__name__ = "Plugin"
__type__ = "hoster"
- __version__ = "0.11"
+ __version__ = "0.12"
__pattern__ = r'^unmatchable$'
__config__ = [] #: [("name", "type", "desc", "default")]
@@ -106,28 +106,28 @@ class Plugin(object):
'msg' : msg or _(level.upper() + " MARK")})
- def logDebug(self, *args):
+ def log_debug(self, *args):
if self.core.debug:
return self._log("debug", args)
- def logInfo(self, *args):
+ def log_info(self, *args):
return self._log("info", args)
- def logWarning(self, *args):
+ def log_warning(self, *args):
return self._log("warning", args)
- def logError(self, *args):
+ def log_error(self, *args):
return self._log("error", args)
- def logCritical(self, *args):
+ def log_critical(self, *args):
return self._log("critical", args)
- def setConfig(self, option, value):
+ def set_config(self, option, value):
"""
Set config value for current plugin
@@ -138,15 +138,15 @@ class Plugin(object):
self.core.config.setPlugin(self.__name__, option, value)
- #: Deprecated method
+ #: Deprecated method, use `set_config` instead
def setConf(self, *args, **kwargs):
"""
- See `setConfig`
+ See `set_config`
"""
- return self.setConfig(*args, **kwargs)
+ return self.set_config(*args, **kwargs)
- def getConfig(self, option, default="", plugin=None):
+ def get_config(self, option, default="", plugin=None):
"""
Returns config value for current plugin
@@ -157,16 +157,16 @@ class Plugin(object):
return self.core.config.getPlugin(plugin or self.__name__, option)
except KeyError:
- self.logWarning(_("Config option or plugin not found"))
+ self.log_warning(_("Config option or plugin not found"))
return default
- #: Deprecated method
+ #: Deprecated method, use `get_config` instead
def getConf(self, *args, **kwargs):
"""
- See `getConfig`
+ See `get_config`
"""
- return self.getConfig(*args, **kwargs)
+ return self.get_config(*args, **kwargs)
def store(self, key, value):
@@ -176,10 +176,10 @@ class Plugin(object):
self.core.db.setStorage(self.__name__, key, value)
- #: Deprecated method
+ #: Deprecated method, use `store` instead
def setStorage(self, *args, **kwargs):
"""
- Same as `setStorage`
+ Same as `store`
"""
return self.store(*args, **kwargs)
@@ -191,21 +191,29 @@ class Plugin(object):
return self.core.db.getStorage(self.__name__, key) or default
- #: Deprecated method
+ #: Deprecated method, use `retrieve` instead
def getStorage(self, *args, **kwargs):
"""
- Same as `getStorage`
+ Same as `retrieve`
"""
return self.retrieve(*args, **kwargs)
- def delStorage(self, key):
+ def delete(self, key):
"""
Delete entry in db
"""
self.core.db.delStorage(self.__name__, key)
+ #: Deprecated method, use `delete` instead
+ def delStorage(self, *args, **kwargs):
+ """
+ Same as `delete`
+ """
+ return self.delete(*args, **kwargs)
+
+
def fail(self, reason):
"""
Fail and give reason
@@ -250,7 +258,7 @@ class Plugin(object):
self.fail(_("No url given"))
if self.core.debug:
- self.logDebug("Load url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")])
+ self.log_debug("Load url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")])
if req is None:
if hasattr(self, "req"):
@@ -274,7 +282,7 @@ class Plugin(object):
del frame #: delete the frame or it wont be cleaned
f.write(res.encode('utf8'))
except IOError, e:
- self.logError(e)
+ self.log_error(e)
if just_header:
#: parse header
@@ -297,4 +305,4 @@ class Plugin(object):
header[key] = value
res = header
- return res \ No newline at end of file
+ return res
diff --git a/module/plugins/internal/ReCaptcha.py b/module/plugins/internal/ReCaptcha.py
index 40faff5f0..79bda9051 100644
--- a/module/plugins/internal/ReCaptcha.py
+++ b/module/plugins/internal/ReCaptcha.py
@@ -13,7 +13,7 @@ from module.plugins.internal.Captcha import Captcha
class ReCaptcha(Captcha):
__name__ = "ReCaptcha"
__type__ = "captcha"
- __version__ = "0.17"
+ __version__ = "0.18"
__description__ = """ReCaptcha captcha service plugin"""
__license__ = "GPLv3"
@@ -32,10 +32,10 @@ class ReCaptcha(Captcha):
m = re.search(self.KEY_V2_PATTERN, html) or re.search(self.KEY_V1_PATTERN, html)
if m:
self.key = m.group(1).strip()
- self.logDebug("Key: %s" % self.key)
+ self.log_debug("Key: %s" % self.key)
return self.key
else:
- self.logWarning("Key pattern not found")
+ self.log_warning("Key pattern not found")
return None
@@ -60,7 +60,7 @@ class ReCaptcha(Captcha):
except AttributeError:
self.fail(_("ReCaptcha challenge pattern not found"))
- self.logDebug("Challenge: %s" % challenge)
+ self.log_debug("Challenge: %s" % challenge)
return self.result(server, challenge, key)
@@ -79,50 +79,50 @@ class ReCaptcha(Captcha):
except AttributeError:
self.fail(_("ReCaptcha second challenge pattern not found"))
- self.logDebug("Second challenge: %s" % challenge)
+ self.log_debug("Second challenge: %s" % challenge)
result = self.plugin.decryptCaptcha("%simage" % server,
get={'c': challenge},
cookies=True,
forceUser=True,
imgtype="jpg")
- self.logDebug("Result: %s" % result)
+ self.log_debug("Result: %s" % result)
return result, challenge
- def _collectApiInfo(self):
+ def _collect_api_info(self):
html = self.plugin.load("http://www.google.com/recaptcha/api.js")
a = re.search(r'po.src = \'(.*?)\';', html).group(1)
vers = a.split("/")[5]
- self.logDebug("API version: %s" % vers)
+ self.log_debug("API version: %s" % vers)
language = a.split("__")[1].split(".")[0]
- self.logDebug("API language: %s" % language)
+ self.log_debug("API language: %s" % language)
html = self.plugin.load("https://apis.google.com/js/api.js")
b = re.search(r'"h":"(.*?)","', html).group(1)
jsh = b.decode('unicode-escape')
- self.logDebug("API jsh-string: %s" % jsh)
+ self.log_debug("API jsh-string: %s" % jsh)
return vers, language, jsh
- def _prepareTimeAndRpc(self):
+ def _prepare_time_and_rpc(self):
self.plugin.load("http://www.google.com/recaptcha/api2/demo")
millis = int(round(time.time() * 1000))
- self.logDebug("Time: %s" % millis)
+ self.log_debug("Time: %s" % millis)
rand = random.randint(1, 99999999)
a = "0.%s" % str(rand * 2147483647)
rpc = int(100000000 * float(a))
- self.logDebug("Rpc-token: %s" % rpc)
+ self.log_debug("Rpc-token: %s" % rpc)
return millis, rpc
@@ -136,8 +136,8 @@ class ReCaptcha(Captcha):
parent = ""
botguardstring = "!A"
- vers, language, jsh = self._collectApiInfo()
- millis, rpc = self._prepareTimeAndRpc()
+ vers, language, jsh = self._collect_api_info()
+ millis, rpc = self._prepare_time_and_rpc()
html = self.plugin.load("https://www.google.com/recaptcha/api2/anchor",
get={'k' : key,
@@ -150,7 +150,7 @@ class ReCaptcha(Captcha):
'rpctoken': rpc})
token1 = re.search(r'id="recaptcha-token" value="(.*?)">', html)
- self.logDebug("Token #1: %s" % token1.group(1))
+ self.log_debug("Token #1: %s" % token1.group(1))
html = self.plugin.load("https://www.google.com/recaptcha/api2/frame",
get={'c' : token1.group(1),
@@ -163,10 +163,10 @@ class ReCaptcha(Captcha):
decode="unicode-escape")
token2 = re.search(r'"finput","(.*?)",', html)
- self.logDebug("Token #2: %s" % token2.group(1))
+ self.log_debug("Token #2: %s" % token2.group(1))
token3 = re.search(r'"rresp","(.*?)",', html)
- self.logDebug("Token #3: %s" % token3.group(1))
+ self.log_debug("Token #3: %s" % token3.group(1))
millis_captcha_loading = int(round(time.time() * 1000))
captcha_response = self.plugin.decryptCaptcha("https://www.google.com/recaptcha/api2/payload",
@@ -175,7 +175,7 @@ class ReCaptcha(Captcha):
forceUser=True)
response = b64encode('{"response":"%s"}' % captcha_response)
- self.logDebug("Result: %s" % response)
+ self.log_debug("Result: %s" % response)
timeToSolve = int(round(time.time() * 1000)) - millis_captcha_loading
timeToSolveMore = timeToSolve + int(float("0." + str(random.randint(1, 99999999))) * 500)
@@ -189,7 +189,7 @@ class ReCaptcha(Captcha):
'bg' : botguardstring})
token4 = re.search(r'"uvresp","(.*?)",', html)
- self.logDebug("Token #4: %s" % token4.group(1))
+ self.log_debug("Token #4: %s" % token4.group(1))
result = token4.group(1)
diff --git a/module/plugins/internal/SevenZip.py b/module/plugins/internal/SevenZip.py
index 147ac6bd4..86ff5156e 100644
--- a/module/plugins/internal/SevenZip.py
+++ b/module/plugins/internal/SevenZip.py
@@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join
class SevenZip(UnRar):
__name__ = "SevenZip"
- __version__ = "0.11"
+ __version__ = "0.12"
__description__ = """7-Zip extractor plugin"""
__license__ = "GPLv3"
@@ -37,7 +37,7 @@ class SevenZip(UnRar):
@classmethod
- def isUsable(cls):
+ def is_usable(cls):
if os.name == "nt":
cls.CMD = os.path.join(pypath, "7z.exe")
p = subprocess.Popen([cls.CMD], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@@ -134,11 +134,11 @@ class SevenZip(UnRar):
def call_cmd(self, command, *xargs, **kwargs):
args = []
- #overwrite flag
+ # overwrite flag
if self.overwrite:
args.append("-y")
- #set a password
+ # set a password
if "password" in kwargs and kwargs['password']:
args.append("-p%s" % kwargs['password'])
else:
diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py
index 7685be55a..fe47178e3 100644
--- a/module/plugins/internal/SimpleCrypter.py
+++ b/module/plugins/internal/SimpleCrypter.py
@@ -10,7 +10,7 @@ from module.utils import fixup, html_unescape
class SimpleCrypter(Crypter, SimpleHoster):
__name__ = "SimpleCrypter"
__type__ = "crypter"
- __version__ = "0.55"
+ __version__ = "0.56"
__pattern__ = r'^unmatchable$'
__config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package']
@@ -47,7 +47,7 @@ class SimpleCrypter(Crypter, SimpleHoster):
and its loadPage method:
- def loadPage(self, page_n):
+ def load_page(self, page_n):
return the html of the page number page_n
"""
#@TODO: Remove in 0.4.10
@@ -85,10 +85,10 @@ class SimpleCrypter(Crypter, SimpleHoster):
self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS)
- def handleDirect(self, pyfile):
- for i in xrange(self.getConfig("maxredirs", plugin="UserAgentSwitcher")):
+ def handle_direct(self, pyfile):
+ for i in xrange(self.get_config("maxredirs", plugin="UserAgentSwitcher")):
redirect = self.link or pyfile.url
- self.logDebug("Redirect #%d to: %s" % (i, redirect))
+ self.log_debug("Redirect #%d to: %s" % (i, redirect))
header = self.load(redirect, just_header=True)
if 'location' in header and header['location']:
@@ -96,38 +96,38 @@ class SimpleCrypter(Crypter, SimpleHoster):
else:
break
else:
- self.logError(_("Too many redirects"))
+ self.log_error(_("Too many redirects"))
def decrypt(self, pyfile):
self.prepare()
- self.logDebug("Looking for link redirect...")
- self.handleDirect(pyfile)
+ self.log_debug("Looking for link redirect...")
+ self.handle_direct(pyfile)
if self.link:
self.urls = [self.link]
else:
self.preload()
- self.checkInfo()
+ self.check_info()
- self.links = self.getLinks() or list()
+ self.links = self.get_links() or list()
if hasattr(self, 'PAGES_PATTERN') and hasattr(self, 'loadPage'):
- self.handlePages(pyfile)
+ self.handle_pages(pyfile)
- self.logDebug("Package has %d links" % len(self.links))
+ self.log_debug("Package has %d links" % len(self.links))
if self.links:
self.packages = [(self.info['name'], self.links, self.info['folder'])]
- def checkNameSize(self, getinfo=True):
+ def check_name_size(self, getinfo=True):
if not self.info or getinfo:
- self.logDebug("File info (BEFORE): %s" % self.info)
- self.info.update(self.getInfo(self.pyfile.url, self.html))
- self.logDebug("File info (AFTER): %s" % self.info)
+ self.log_debug("File info (BEFORE): %s" % self.info)
+ self.info.update(self.get_info(self.pyfile.url, self.html))
+ self.log_debug("File info (AFTER): %s" % self.info)
try:
url = self.info['url'].strip()
@@ -144,11 +144,11 @@ class SimpleCrypter(Crypter, SimpleHoster):
except Exception:
pass
- self.logDebug("File name: %s" % self.pyfile.name,
+ self.log_debug("File name: %s" % self.pyfile.name,
"File folder: %s" % self.pyfile.name)
- def getLinks(self):
+ def get_links(self):
"""
Returns the links extracted from self.html
You should override this only if it's impossible to extract links using only the LINK_PATTERN.
@@ -156,12 +156,12 @@ class SimpleCrypter(Crypter, SimpleHoster):
return re.findall(self.LINK_PATTERN, self.html)
- def handlePages(self, pyfile):
+ def handle_pages(self, pyfile):
try:
pages = int(re.search(self.PAGES_PATTERN, self.html).group(1))
except Exception:
pages = 1
for p in xrange(2, pages + 1):
- self.html = self.loadPage(p)
- self.links += self.getLinks()
+ self.html = self.load_page(p)
+ self.links += self.get_links()
diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py
index 067b97747..2e31c1176 100644
--- a/module/plugins/internal/SimpleHoster.py
+++ b/module/plugins/internal/SimpleHoster.py
@@ -25,7 +25,7 @@ statusMap = dict((v, k) for k, v in _statusMap.iteritems())
#@TODO: Remove in 0.4.10
def parseFileInfo(plugin, url="", html=""):
if hasattr(plugin, "getInfo"):
- info = plugin.getInfo(url, html)
+ info = plugin.get_info(url, html)
res = info['name'], info['size'], info['status'], info['url']
else:
url = urllib.unquote(url)
@@ -42,7 +42,7 @@ def parseFileInfo(plugin, url="", html=""):
#@TODO: Remove in 0.4.10
def create_getInfo(plugin):
- def getInfo(urls):
+ def get_info(urls):
for url in urls:
if hasattr(plugin, "URL_REPLACEMENTS"):
url = replace_patterns(url, plugin.URL_REPLACEMENTS)
@@ -55,7 +55,7 @@ def timestamp():
return int(time.time() * 1000)
-def secondsToMidnight(gmt=0):
+def seconds_to_midnight(gmt=0):
now = datetime.datetime.utcnow() + datetime.timedelta(hours=gmt)
if now.hour is 0 and now.minute < 10:
@@ -76,7 +76,7 @@ def secondsToMidnight(gmt=0):
class SimpleHoster(Hoster):
__name__ = "SimpleHoster"
__type__ = "hoster"
- __version__ = "1.69"
+ __version__ = "1.70"
__pattern__ = r'^unmatchable$'
__config__ = [("use_premium", "bool", "Use premium account if available" , True),
@@ -132,7 +132,7 @@ class SimpleHoster(Hoster):
example: ERROR_PATTERN = r''
- Instead overriding handleFree and handlePremium methods you may define the following patterns for basic link handling:
+ Instead overriding handle_free and handle_premium methods you may define the following patterns for basic link handling:
LINK_PATTERN: (optional) group(1) should be the direct link for free and premium download
example: LINK_PATTERN = r'<div class="link"><a href="(.+?)"'
@@ -154,18 +154,18 @@ class SimpleHoster(Hoster):
CHECK_FILE = True #: Set to False to not check the last downloaded file with declared error patterns
CHECK_TRAFFIC = False #: Set to True to force checking traffic left for premium account
COOKIES = True #: or False or list of tuples [(domain, name, value)]
- DIRECT_LINK = None #: Set to True to looking for direct link (as defined in handleDirect method), set to None to do it if self.account is True else False
+ DIRECT_LINK = None #: Set to True to looking for direct link (as defined in handle_direct method), set to None to do it if self.account is True else False
DISPOSITION = True #: Set to True to use any content-disposition value in http header as file name
LOGIN_ACCOUNT = False #: Set to True to require account login
LOGIN_PREMIUM = False #: Set to True to require premium account login
- MULTI_HOSTER = False #: Set to True to leech other hoster link (as defined in handleMulti method)
+ MULTI_HOSTER = False #: Set to True to leech other hoster link (as defined in handle_multi method)
TEXT_ENCODING = True #: Set to encoding name if encoding value in http header is not correct
LINK_PATTERN = None
@classmethod
- def apiInfo(cls, url):
+ def api_info(cls, url):
url = urllib.unquote(url)
url_p = urlparse.urlparse(url)
return {'name' : (url_p.path.split('/')[-1]
@@ -177,8 +177,8 @@ class SimpleHoster(Hoster):
@classmethod
- def getInfo(cls, url="", html=""):
- info = cls.apiInfo(url)
+ def get_info(cls, url="", html=""):
+ info = cls.api_info(url)
online = True if info['status'] is 2 else False
try:
@@ -257,7 +257,7 @@ class SimpleHoster(Hoster):
def setup(self):
- self.resumeDownload = self.multiDL = self.premium
+ self.resume_download = self.multi_dl = self.premium
def prepare(self):
@@ -266,11 +266,11 @@ class SimpleHoster(Hoster):
self.info = {}
self.html = "" #@TODO: Recheck in 0.4.10
self.link = "" #@TODO: Recheck in 0.4.10
- self.directDL = False
+ self.direct_d_l = False
self.multihost = False
- if not self.getConfig('use_premium', True):
- self.retryFree()
+ if not self.get_config('use_premium', True):
+ self.retry_free()
if self.LOGIN_PREMIUM and not self.premium:
self.fail(_("Required premium account not found"))
@@ -297,9 +297,9 @@ class SimpleHoster(Hoster):
return
if self.DIRECT_LINK is None:
- self.directDL = bool(self.account)
+ self.direct_d_l = bool(self.account)
else:
- self.directDL = self.DIRECT_LINK
+ self.direct_d_l = self.DIRECT_LINK
self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS)
@@ -314,87 +314,87 @@ class SimpleHoster(Hoster):
def process(self, pyfile):
try:
self.prepare()
- self.checkInfo()
+ self.check_info()
- if self.directDL:
- self.logDebug("Looking for direct download link...")
- self.handleDirect(pyfile)
+ if self.direct_d_l:
+ self.log_debug("Looking for direct download link...")
+ self.handle_direct(pyfile)
- if self.multihost and not self.link and not self.lastDownload:
- self.logDebug("Looking for leeched download link...")
- self.handleMulti(pyfile)
+ if self.multihost and not self.link and not self.last_download:
+ self.log_debug("Looking for leeched download link...")
+ self.handle_multi(pyfile)
- if not self.link and not self.lastDownload:
+ if not self.link and not self.last_download:
self.MULTI_HOSTER = False
self.retry(1, reason=_("Multi hoster fails"))
- if not self.link and not self.lastDownload:
+ if not self.link and not self.last_download:
self.preload()
- self.checkInfo()
+ self.check_info()
- if self.premium and (not self.CHECK_TRAFFIC or self.checkTrafficLeft()):
- self.logDebug("Handled as premium download")
- self.handlePremium(pyfile)
+ if self.premium and (not self.CHECK_TRAFFIC or self.check_traffic_left()):
+ self.log_debug("Handled as premium download")
+ self.handle_premium(pyfile)
- elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.checkTrafficLeft()):
- self.logDebug("Handled as free download")
- self.handleFree(pyfile)
+ elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.check_traffic_left()):
+ self.log_debug("Handled as free download")
+ self.handle_free(pyfile)
self.download(self.link, ref=False, disposition=self.DISPOSITION)
- self.checkFile()
+ self.check_file()
except Fail, e: #@TODO: Move to PluginThread in 0.4.10
err = str(e) #@TODO: Recheck in 0.4.10
if err == _("No captcha result obtained in appropiate time by any of the plugins."): #@TODO: Fix in 0.4.10
- self.checkFile()
+ self.check_file()
- elif self.getConfig('fallback', True) and self.premium:
- self.logWarning(_("Premium download failed"), e)
- self.retryFree()
+ elif self.get_config('fallback', True) and self.premium:
+ self.log_warning(_("Premium download failed"), e)
+ self.retry_free()
else:
raise Fail(err)
- def checkFile(self):
- lastDownload = fs_encode(self.lastDownload)
+ def check_file(self):
+ lastDownload = fs_encode(self.last_download)
- if self.cTask and not self.lastDownload:
- self.invalidCaptcha()
+ if self.c_task and not self.last_download:
+ self.invalid_captcha()
self.retry(10, reason=_("Wrong captcha"))
- elif self.checkDownload({'Empty file': re.compile(r'\A((.|)(\2|\s)*)\Z')}, file_size=self.info['size']):
+ elif self.check_download({'Empty file': re.compile(r'\A((.|)(\2|\s)*)\Z')}, file_size=self.info['size']):
self.error(_("Empty file"))
else:
- self.logDebug("Checking last downloaded file with built-in rules")
+ self.log_debug("Checking last downloaded file with built-in rules")
for r, p in self.FILE_ERRORS:
- errmsg = self.checkDownload({r: re.compile(p)})
+ errmsg = self.check_download({r: re.compile(p)})
if errmsg is not None:
errmsg = errmsg.strip().capitalize()
try:
- errmsg += " | " + self.lastCheck.group(1).strip()
+ errmsg += " | " + self.last_check.group(1).strip()
except Exception:
pass
- self.logWarning("Check result: " + errmsg, "Waiting 1 minute and retry")
- self.wantReconnect = True
+ self.log_warning("Check result: " + errmsg, "Waiting 1 minute and retry")
+ self.want_reconnect = True
self.retry(wait_time=60, reason=errmsg)
else:
if self.CHECK_FILE:
- self.logDebug("Checking last downloaded file with custom rules")
+ self.log_debug("Checking last downloaded file with custom rules")
with open(lastDownload, "rb") as f:
self.html = f.read(50000) #@TODO: Recheck in 0.4.10
- self.checkErrors()
+ self.check_errors()
- self.logDebug("No file errors found")
+ self.log_debug("No file errors found")
- def checkErrors(self):
+ def check_errors(self):
if not self.html:
- self.logWarning(_("No html code to check"))
+ self.log_warning(_("No html code to check"))
return
if hasattr(self, 'IP_BLOCKED_PATTERN') and re.search(self.IP_BLOCKED_PATTERN, self.html):
@@ -415,19 +415,19 @@ class SimpleHoster(Hoster):
errmsg = m.group(0).strip()
self.info['error'] = re.sub(r'<.*?>', " ", errmsg)
- self.logWarning(self.info['error'])
+ self.log_warning(self.info['error'])
if re.search('da(il)?y|today', errmsg, re.I):
- wait_time = secondsToMidnight(gmt=2)
+ wait_time = seconds_to_midnight(gmt=2)
else:
wait_time = sum(int(v) * {"hr": 3600, "hour": 3600, "min": 60, "sec": 1, "": 1}[u.lower()] for v, u in
re.findall(r'(\d+)\s*(hr|hour|min|sec|)', errmsg, re.I))
- self.wantReconnect = wait_time > 300
+ self.want_reconnect = wait_time > 300
self.retry(1, wait_time, _("Download limit exceeded"))
if hasattr(self, 'HAPPY_HOUR_PATTERN') and re.search(self.HAPPY_HOUR_PATTERN, self.html):
- self.multiDL = True
+ self.multi_dl = True
if hasattr(self, 'ERROR_PATTERN'):
m = re.search(self.ERROR_PATTERN, self.html)
@@ -438,30 +438,30 @@ class SimpleHoster(Hoster):
errmsg = m.group(0).strip()
self.info['error'] = re.sub(r'<.*?>', " ", errmsg)
- self.logWarning(self.info['error'])
+ self.log_warning(self.info['error'])
if re.search('limit|wait|slot', errmsg, re.I):
if re.search("da(il)?y|today", errmsg):
- wait_time = secondsToMidnight(gmt=2)
+ wait_time = seconds_to_midnight(gmt=2)
else:
wait_time = sum(int(v) * {"hr": 3600, "hour": 3600, "min": 60, "sec": 1, "": 1}[u.lower()] for v, u in
re.findall(r'(\d+)\s*(hr|hour|min|sec|)', errmsg, re.I))
- self.wantReconnect = wait_time > 300
+ self.want_reconnect = wait_time > 300
self.retry(1, wait_time, _("Download limit exceeded"))
elif re.search('country|ip|region|nation', errmsg, re.I):
self.fail(_("Connection from your current IP address is not allowed"))
elif re.search('captcha|code', errmsg, re.I):
- self.invalidCaptcha()
+ self.invalid_captcha()
self.retry(10, reason=_("Wrong captcha"))
elif re.search('countdown|expired', errmsg, re.I):
self.retry(10, 60, _("Link expired"))
elif re.search('maintenance|maintainance|temp', errmsg, re.I):
- self.tempOffline()
+ self.temp_offline()
elif re.search('up to|size', errmsg, re.I):
self.fail(_("File too large for free download"))
@@ -478,7 +478,7 @@ class SimpleHoster(Hoster):
self.fail(_("File can be downloaded by premium users only"))
else:
- self.wantReconnect = True
+ self.want_reconnect = True
self.retry(wait_time=60, reason=errmsg)
elif hasattr(self, 'WAIT_PATTERN'):
@@ -496,12 +496,12 @@ class SimpleHoster(Hoster):
self.info.pop('error', None)
- def checkStatus(self, getinfo=True):
+ def check_status(self, getinfo=True):
if not self.info or getinfo:
- self.logDebug("Update file info...")
- self.logDebug("Previous file info: %s" % self.info)
- self.info.update(self.getInfo(self.pyfile.url, self.html))
- self.logDebug("Current file info: %s" % self.info)
+ self.log_debug("Update file info...")
+ self.log_debug("Previous file info: %s" % self.info)
+ self.info.update(self.get_info(self.pyfile.url, self.html))
+ self.log_debug("Current file info: %s" % self.info)
try:
status = self.info['status']
@@ -510,21 +510,21 @@ class SimpleHoster(Hoster):
self.offline()
elif status is 6:
- self.tempOffline()
+ self.temp_offline()
elif status is 8:
self.fail(self.info['error'] if 'error' in self.info else _("Failed"))
finally:
- self.logDebug("File status: %s" % statusMap[status])
+ self.log_debug("File status: %s" % statusMap[status])
- def checkNameSize(self, getinfo=True):
+ def check_name_size(self, getinfo=True):
if not self.info or getinfo:
- self.logDebug("Update file info...")
- self.logDebug("Previous file info: %s" % self.info)
- self.info.update(self.getInfo(self.pyfile.url, self.html))
- self.logDebug("Current file info: %s" % self.info)
+ self.log_debug("Update file info...")
+ self.log_debug("Previous file info: %s" % self.info)
+ self.info.update(self.get_info(self.pyfile.url, self.html))
+ self.log_debug("Current file info: %s" % self.info)
try:
url = self.info['url'].strip()
@@ -543,44 +543,44 @@ class SimpleHoster(Hoster):
except Exception:
pass
- self.logDebug("File name: %s" % self.pyfile.name,
+ self.log_debug("File name: %s" % self.pyfile.name,
"File size: %s byte" % self.pyfile.size if self.pyfile.size > 0 else "File size: Unknown")
- def checkInfo(self):
- self.checkNameSize()
+ def check_info(self):
+ self.check_name_size()
if self.html:
- self.checkErrors()
- self.checkNameSize()
+ self.check_errors()
+ self.check_name_size()
- self.checkStatus(getinfo=False)
+ self.check_status(getinfo=False)
- #: Deprecated
+ #: Deprecated method
def getFileInfo(self):
self.info = {}
- self.checkInfo()
+ self.check_info()
return self.info
- def handleDirect(self, pyfile):
- link = self.directLink(pyfile.url, self.resumeDownload)
+ def handle_direct(self, pyfile):
+ link = self.direct_link(pyfile.url, self.resume_download)
if link:
- self.logInfo(_("Direct download link detected"))
+ self.log_info(_("Direct download link detected"))
self.link = link
else:
- self.logDebug("Direct download link not found")
+ self.log_debug("Direct download link not found")
- def handleMulti(self, pyfile): #: Multi-hoster handler
+ def handle_multi(self, pyfile): #: Multi-hoster handler
pass
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
if not hasattr(self, 'LINK_FREE_PATTERN'):
- self.logError(_("Free download not implemented"))
+ self.log_error(_("Free download not implemented"))
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m is None:
@@ -589,11 +589,11 @@ class SimpleHoster(Hoster):
self.link = m.group(1)
- def handlePremium(self, pyfile):
+ def handle_premium(self, pyfile):
if not hasattr(self, 'LINK_PREMIUM_PATTERN'):
- self.logError(_("Premium download not implemented"))
- self.logDebug("Handled as free download")
- self.handleFree(pyfile)
+ self.log_error(_("Premium download not implemented"))
+ self.log_debug("Handled as free download")
+ self.handle_free(pyfile)
m = re.search(self.LINK_PREMIUM_PATTERN, self.html)
if m is None:
@@ -602,7 +602,7 @@ class SimpleHoster(Hoster):
self.link = m.group(1)
- def retryFree(self):
+ def retry_free(self):
if not self.premium:
return
self.premium = False
diff --git a/module/plugins/internal/SolveMedia.py b/module/plugins/internal/SolveMedia.py
index dde6223ed..927d4e536 100644
--- a/module/plugins/internal/SolveMedia.py
+++ b/module/plugins/internal/SolveMedia.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha
class SolveMedia(Captcha):
__name__ = "SolveMedia"
__type__ = "captcha"
- __version__ = "0.14"
+ __version__ = "0.15"
__description__ = """SolveMedia captcha service plugin"""
__license__ = "GPLv3"
@@ -25,10 +25,10 @@ class SolveMedia(Captcha):
m = re.search(self.KEY_PATTERN, html)
if m:
self.key = m.group(1).strip()
- self.logDebug("Key: %s" % self.key)
+ self.log_debug("Key: %s" % self.key)
return self.key
else:
- self.logWarning("Key pattern not found")
+ self.log_warning("Key pattern not found")
return None
@@ -43,7 +43,7 @@ class SolveMedia(Captcha):
magic = re.search(r'name="magic" value="(.+?)"', html).group(1)
except AttributeError:
- self.logWarning("Magic pattern not found")
+ self.log_warning("Magic pattern not found")
magic = None
try:
@@ -54,13 +54,13 @@ class SolveMedia(Captcha):
self.fail(_("SolveMedia challenge pattern not found"))
else:
- self.logDebug("Challenge: %s" % challenge)
+ self.log_debug("Challenge: %s" % challenge)
try:
result = self.result("http://api.solvemedia.com/papi/media", challenge)
except Fail, e:
- self.logWarning(e)
+ self.log_warning(e)
self.plugin.invalidCaptcha()
result = None
@@ -81,8 +81,8 @@ class SolveMedia(Captcha):
else:
if "error" in html:
- self.logWarning("Captcha code was invalid")
- self.logDebug("Retry #%d" % i)
+ self.log_warning("Captcha code was invalid")
+ self.log_debug("Retry #%d" % i)
html = self.plugin.load(redirect)
else:
break
@@ -99,6 +99,6 @@ class SolveMedia(Captcha):
cookies=True,
imgtype="gif")
- self.logDebug("Result: %s" % result)
+ self.log_debug("Result: %s" % result)
return result
diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py
index 25a8a52de..4494b98c6 100644
--- a/module/plugins/internal/UnRar.py
+++ b/module/plugins/internal/UnRar.py
@@ -22,7 +22,7 @@ def renice(pid, value):
class UnRar(Extractor):
__name__ = "UnRar"
- __version__ = "1.20"
+ __version__ = "1.21"
__description__ = """Rar extractor plugin"""
__license__ = "GPLv3"
@@ -48,7 +48,7 @@ class UnRar(Extractor):
@classmethod
- def isUsable(cls):
+ def is_usable(cls):
if os.name == "nt":
try:
cls.CMD = os.path.join(pypath, "RAR.exe")
@@ -79,7 +79,7 @@ class UnRar(Extractor):
@classmethod
- def isMultipart(cls, filename):
+ def is_multipart(cls, filename):
return True if cls.re_multipart.search(filename) else False
@@ -131,7 +131,7 @@ class UnRar(Extractor):
break
#: reading a percentage sign -> set progress and restart
if c == '%':
- self.notifyProgress(int(s))
+ self.notify_progress(int(s))
s = ""
#: not reading a digit -> therefore restart
elif c not in digits:
@@ -168,14 +168,14 @@ class UnRar(Extractor):
self.files = self.list(password)
- def getDeleteFiles(self):
+ def get_delete_files(self):
dir, name = os.path.split(self.filename)
#: actually extracted file
files = [self.filename]
#: eventually Multipart Files
- files.extend(fs_join(dir, os.path.basename(file)) for file in filter(self.isMultipart, os.listdir(dir))
+ files.extend(fs_join(dir, os.path.basename(file)) for file in filter(self.is_multipart, os.listdir(dir))
if re.sub(self.re_multipart,".rar",name) == re.sub(self.re_multipart,".rar",file))
return files
diff --git a/module/plugins/internal/UnZip.py b/module/plugins/internal/UnZip.py
index 4c18a0e35..c2eb522a8 100644
--- a/module/plugins/internal/UnZip.py
+++ b/module/plugins/internal/UnZip.py
@@ -12,7 +12,7 @@ from module.utils import fs_encode
class UnZip(Extractor):
__name__ = "UnZip"
- __version__ = "1.12"
+ __version__ = "1.13"
__description__ = """Zip extractor plugin"""
__license__ = "GPLv3"
@@ -24,7 +24,7 @@ class UnZip(Extractor):
@classmethod
- def isUsable(cls):
+ def is_usable(cls):
return sys.version_info[:2] >= (2, 6)
diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py
index c26a91775..fb2302f4c 100644
--- a/module/plugins/internal/XFSAccount.py
+++ b/module/plugins/internal/XFSAccount.py
@@ -11,7 +11,7 @@ from module.plugins.internal.Plugin import parseHtmlForm, set_cookies
class XFSAccount(Account):
__name__ = "XFSAccount"
__type__ = "account"
- __version__ = "0.38"
+ __version__ = "0.39"
__description__ = """XFileSharing account plugin"""
__license__ = "GPLv3"
@@ -40,7 +40,7 @@ class XFSAccount(Account):
def init(self):
if not self.HOSTER_DOMAIN:
- self.logError(_("Missing HOSTER_DOMAIN"))
+ self.log_error(_("Missing HOSTER_DOMAIN"))
self.COOKIES = False
else:
@@ -52,7 +52,7 @@ class XFSAccount(Account):
set_cookies(req.cj, self.COOKIES)
- def loadAccountInfo(self, user, req):
+ def load_account_info(self, user, req):
validuntil = None
trafficleft = None
leechtraffic = None
@@ -71,16 +71,16 @@ class XFSAccount(Account):
m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
expiredate = m.group(1).strip()
- self.logDebug("Expire date: " + expiredate)
+ self.log_debug("Expire date: " + expiredate)
try:
validuntil = time.mktime(time.strptime(expiredate, "%d %B %Y"))
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
- self.logDebug("Valid until: %s" % validuntil)
+ self.log_debug("Valid until: %s" % validuntil)
if validuntil > time.mktime(time.gmtime()):
premium = True
@@ -89,7 +89,7 @@ class XFSAccount(Account):
premium = False
validuntil = None #: registered account type (not premium)
else:
- self.logDebug("VALID_UNTIL_PATTERN not found")
+ self.log_debug("VALID_UNTIL_PATTERN not found")
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
@@ -109,12 +109,12 @@ class XFSAccount(Account):
else:
unit = ""
- trafficleft = self.parseTraffic(size + unit)
+ trafficleft = self.parse_traffic(size + unit)
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
- self.logDebug("TRAFFIC_LEFT_PATTERN not found")
+ self.log_debug("TRAFFIC_LEFT_PATTERN not found")
leech = [m.groupdict() for m in re.finditer(self.LEECH_TRAFFIC_PATTERN, html)]
if leech:
@@ -136,12 +136,12 @@ class XFSAccount(Account):
else:
unit = ""
- leechtraffic += self.parseTraffic(size + unit)
+ leechtraffic += self.parse_traffic(size + unit)
except Exception, e:
- self.logError(e)
+ self.log_error(e)
else:
- self.logDebug("LEECH_TRAFFIC_PATTERN not found")
+ self.log_debug("LEECH_TRAFFIC_PATTERN not found")
return {'validuntil' : validuntil,
'trafficleft' : trafficleft,
@@ -173,4 +173,4 @@ class XFSAccount(Account):
html = self.load(url, post=inputs, req=req)
if re.search(self.LOGIN_FAIL_PATTERN, html):
- self.wrongPassword()
+ self.wrong_password()
diff --git a/module/plugins/internal/XFSCrypter.py b/module/plugins/internal/XFSCrypter.py
index 0f5bfd5d7..c371e97f5 100644
--- a/module/plugins/internal/XFSCrypter.py
+++ b/module/plugins/internal/XFSCrypter.py
@@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
class XFSCrypter(SimpleCrypter):
__name__ = "XFSCrypter"
__type__ = "crypter"
- __version__ = "0.10"
+ __version__ = "0.11"
__pattern__ = r'^unmatchable$'
diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py
index 0f4f90128..68cf25f14 100644
--- a/module/plugins/internal/XFSHoster.py
+++ b/module/plugins/internal/XFSHoster.py
@@ -6,14 +6,14 @@ import re
from module.plugins.internal.ReCaptcha import ReCaptcha
from module.plugins.internal.SolveMedia import SolveMedia
-from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, secondsToMidnight
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, seconds_to_midnight
from module.utils import html_unescape
class XFSHoster(SimpleHoster):
__name__ = "XFSHoster"
__type__ = "hoster"
- __version__ = "0.53"
+ __version__ = "0.54"
__pattern__ = r'^unmatchable$'
@@ -51,8 +51,8 @@ class XFSHoster(SimpleHoster):
def setup(self):
- self.chunkLimit = -1 if self.premium else 1
- self.resumeDownload = self.multiDL = self.premium
+ self.chunk_limit = -1 if self.premium else 1
+ self.resume_download = self.multi_dl = self.premium
def prepare(self):
@@ -80,20 +80,20 @@ class XFSHoster(SimpleHoster):
super(XFSHoster, self).prepare()
if self.DIRECT_LINK is None:
- self.directDL = self.premium
+ self.direct_d_l = self.premium
- def handleFree(self, pyfile):
+ def handle_free(self, pyfile):
for i in xrange(1, 6):
- self.logDebug("Getting download link #%d" % i)
+ self.log_debug("Getting download link #%d" % i)
- self.checkErrors()
+ self.check_errors()
m = re.search(self.LINK_PATTERN, self.html, re.S)
if m:
break
- data = self.getPostParameters()
+ data = self.get_post_parameters()
self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)
@@ -109,24 +109,24 @@ class XFSHoster(SimpleHoster):
if m:
break
else:
- self.logError(data['op'] if 'op' in data else _("UNKNOWN"))
+ self.log_error(data['op'] if 'op' in data else _("UNKNOWN"))
return ""
self.link = m.group(1)
- def handlePremium(self, pyfile):
- return self.handleFree(pyfile)
+ def handle_premium(self, pyfile):
+ return self.handle_free(pyfile)
- def handleMulti(self, pyfile):
+ def handle_multi(self, pyfile):
if not self.account:
self.fail(_("Only registered or premium users can use url leech feature"))
- #only tested with easybytez.com
+ # only tested with easybytez.com
self.html = self.load("http://www.%s/" % self.HOSTER_DOMAIN)
- action, inputs = self.parseHtmlForm()
+ action, inputs = self.parse_html_form()
upload_id = "%012d" % int(random.random() * 10 ** 12)
action += upload_id + "&js_on=1&utype=prem&upload_type=url"
@@ -135,19 +135,19 @@ class XFSHoster(SimpleHoster):
inputs['url_mass'] = pyfile.url
inputs['up1oad_type'] = 'url'
- self.logDebug(action, inputs)
+ self.log_debug(action, inputs)
self.req.setOption("timeout", 600) #: wait for file to upload to easybytez.com
self.html = self.load(action, post=inputs)
- self.checkErrors()
+ self.check_errors()
- action, inputs = self.parseHtmlForm('F1')
+ action, inputs = self.parse_html_form('F1')
if not inputs:
self.retry(reason=self.info['error'] if 'error' in self.info else _("TEXTAREA F1 not found"))
- self.logDebug(inputs)
+ self.log_debug(inputs)
stmsg = inputs['st']
@@ -158,12 +158,12 @@ class XFSHoster(SimpleHoster):
self.retry(20, 3 * 60, _("Can not leech file"))
elif 'today' in stmsg:
- self.retry(wait_time=secondsToMidnight(gmt=2), reason=_("You've used all Leech traffic today"))
+ self.retry(wait_time=seconds_to_midnight(gmt=2), reason=_("You've used all Leech traffic today"))
else:
self.fail(stmsg)
- #get easybytez.com link for uploaded file
+ # get easybytez.com link for uploaded file
m = re.search(self.LINK_LEECH_PATTERN, self.html)
if m is None:
self.error(_("LINK_LEECH_PATTERN not found"))
@@ -174,22 +174,22 @@ class XFSHoster(SimpleHoster):
self.link = header['location']
- def getPostParameters(self):
+ def get_post_parameters(self):
if self.FORM_PATTERN or self.FORM_INPUTS_MAP:
- action, inputs = self.parseHtmlForm(self.FORM_PATTERN or "", self.FORM_INPUTS_MAP or {})
+ action, inputs = self.parse_html_form(self.FORM_PATTERN or "", self.FORM_INPUTS_MAP or {})
else:
- action, inputs = self.parseHtmlForm(input_names={'op': re.compile(r'^download')})
+ action, inputs = self.parse_html_form(input_names={'op': re.compile(r'^download')})
if not inputs:
- action, inputs = self.parseHtmlForm('F1')
+ action, inputs = self.parse_html_form('F1')
if not inputs:
self.retry(reason=self.info['error'] if 'error' in self.info else _("TEXTAREA F1 not found"))
- self.logDebug(inputs)
+ self.log_debug(inputs)
if 'op' in inputs:
if "password" in inputs:
- password = self.getPassword()
+ password = self.get_password()
if password:
inputs['password'] = password
else:
@@ -199,9 +199,9 @@ class XFSHoster(SimpleHoster):
m = re.search(self.WAIT_PATTERN, self.html)
if m:
wait_time = int(m.group(1))
- self.setWait(wait_time, False)
+ self.set_wait(wait_time, False)
- self.handleCaptcha(inputs)
+ self.handle_captcha(inputs)
self.wait()
else:
inputs['referer'] = self.pyfile.url
@@ -216,11 +216,11 @@ class XFSHoster(SimpleHoster):
return inputs
- def handleCaptcha(self, inputs):
+ def handle_captcha(self, inputs):
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m:
captcha_url = m.group(1)
- inputs['code'] = self.decryptCaptcha(captcha_url)
+ inputs['code'] = self.decrypt_captcha(captcha_url)
return
m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.html, re.S)
@@ -228,11 +228,11 @@ class XFSHoster(SimpleHoster):
captcha_div = m.group(1)
numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div))
- self.logDebug(captcha_div)
+ self.log_debug(captcha_div)
inputs['code'] = "".join(a[1] for a in sorted(numerals, key=lambda num: int(num[0])))
- self.logDebug("Captcha code: %s" % inputs['code'], numerals)
+ self.log_debug("Captcha code: %s" % inputs['code'], numerals)
return
recaptcha = ReCaptcha(self)
@@ -243,7 +243,7 @@ class XFSHoster(SimpleHoster):
captcha_key = recaptcha.detect_key()
else:
- self.logDebug("ReCaptcha key: %s" % captcha_key)
+ self.log_debug("ReCaptcha key: %s" % captcha_key)
if captcha_key:
inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge(captcha_key)
@@ -257,7 +257,7 @@ class XFSHoster(SimpleHoster):
captcha_key = solvemedia.detect_key()
else:
- self.logDebug("SolveMedia key: %s" % captcha_key)
+ self.log_debug("SolveMedia key: %s" % captcha_key)
if captcha_key:
inputs['adcopy_response'], inputs['adcopy_challenge'] = solvemedia.challenge(captcha_key)