# -*- coding: utf-8 -*- import re from hashlib import md5 from module.plugins.hoster.XFileSharingPro import XFileSharingPro from module.network.RequestFactory import getURL from module.plugins.Plugin import chunks from module.common.json_layer import json_loads def getInfo(urls): # DDLStorage API Documentation: # http://www.ddlstorage.com/cgi-bin/api_req.cgi?req_type=doc ids = dict() for url in urls: m = re.search(DdlstorageCom.__pattern__, url) ids[m.group('ID')] = url for chunk in chunks(ids.keys(), 5): api = getURL('http://www.ddlstorage.com/cgi-bin/api_req.cgi', post={'req_type': 'file_info_free', 'client_id': 53472, 'file_code': ','.join(chunk), 'sign': md5('file_info_free%d%s%s' % (53472, ','.join(chunk), '25JcpU2dPOKg8E2OEoRqMSRu068r0Cv3')).hexdigest()}) api = api.replace('
', '').replace('', '')
        api = json_loads(api)
        result = list()
        for el in api:
            if el['status'] == 'online':
                result.append((el['file_name'], int(el['file_size']), 2, ids[el['file_code']]))
            else:
                result.append((ids[el['file_code']], 0, 1, ids[el['file_code']]))
        yield result
class DdlstorageCom(XFileSharingPro):
    __name__ = "DdlstorageCom"
    __type__ = "hoster"
    __pattern__ = r'http://(?:www\.)?ddlstorage.com/(?P]*>(?P[^)]+)\)
', '').replace('', '')
        self.logDebug('API Data: ' + self.api_data)
        self.api_data = json_loads(self.api_data)[0]
        if self.api_data['status'] == 'offline':
            self.offline()
        if 'file_name' in self.api_data:
            self.pyfile.name = self.api_data['file_name']
        if 'file_size' in self.api_data:
            self.pyfile.size = self.api_data['size'] = self.api_data['file_size']
        if 'file_md5_base64' in self.api_data:
            self.api_data['md5_ddlstorage'] = self.api_data['file_md5_base64']