Fix Mega
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import base64
|
||||
import json
|
||||
import random
|
||||
import struct
|
||||
import time
|
||||
import urllib
|
||||
import base64, json, random, struct, time, sys, traceback
|
||||
if sys.version_info[0] >= 3:
|
||||
import urllib.request as urllib
|
||||
xrange = range
|
||||
else:
|
||||
import urllib
|
||||
|
||||
from core import httptools
|
||||
from threading import Thread
|
||||
|
||||
@@ -102,7 +103,7 @@ class Client(object):
|
||||
return files
|
||||
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
logger.info(traceback.format_exc())
|
||||
pass
|
||||
|
||||
return files
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
import urllib2
|
||||
import traceback
|
||||
import sys, traceback
|
||||
from platformcode import logger
|
||||
if sys.version_info[0] >= 3:
|
||||
from urllib.request import Request, urlopen
|
||||
else:
|
||||
from urllib2 import Request, urlopen
|
||||
|
||||
|
||||
class Cursor(object):
|
||||
def __init__(self, file):
|
||||
@@ -18,14 +23,14 @@ class Cursor(object):
|
||||
file = self._file._client.api_req({'a': 'g', 'g': 1, 'p': self._file.file_id})
|
||||
self._file.url= file["g"]
|
||||
|
||||
req = urllib2.Request(self._file.url)
|
||||
req = Request(self._file.url)
|
||||
req.headers['Range'] = 'bytes=%s-' % (offset)
|
||||
try:
|
||||
self.conn = urllib2.urlopen(req)
|
||||
self.conn = urlopen(req)
|
||||
try:
|
||||
self.prepare_decoder(offset)
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
logger.error(traceback.format_exc())
|
||||
except:
|
||||
self.mega_request(offset, True)
|
||||
|
||||
|
||||
@@ -28,8 +28,3 @@ class File(object):
|
||||
self.cursor = True
|
||||
self.cursors.append(c)
|
||||
return c
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import BaseHTTPServer
|
||||
import urlparse
|
||||
import time
|
||||
import urllib
|
||||
import types
|
||||
import os
|
||||
import re
|
||||
import time, os, re, sys
|
||||
|
||||
if sys.version_info[0] >= 3:
|
||||
from http.server import BaseHTTPRequestHandler
|
||||
import urllib.request as urllib
|
||||
import urllib.parse as urlparse
|
||||
else:
|
||||
from BaseHTTPServer import BaseHTTPRequestHandler
|
||||
import urlparse
|
||||
import urllib
|
||||
|
||||
|
||||
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
class Handler(BaseHTTPRequestHandler):
|
||||
protocol_version = 'HTTP/1.1'
|
||||
|
||||
def log_message(self, format, *args):
|
||||
@@ -68,19 +71,19 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
|
||||
if self.server._client.file and urllib.unquote(url)[1:].decode("utf-8") == self.server._client.file.name:
|
||||
range = False
|
||||
self.offset=0
|
||||
self.offset = 0
|
||||
size, mime = self._file_info()
|
||||
start, end = self.parse_range(self.headers.get('Range', ""))
|
||||
self.size = size
|
||||
|
||||
if start <> None:
|
||||
|
||||
if start != None:
|
||||
if end == None: end = size - 1
|
||||
self.offset=int(start)
|
||||
self.size=int(end) - int(start) + 1
|
||||
range=(int(start), int(end), int(size))
|
||||
else:
|
||||
range = None
|
||||
|
||||
|
||||
self.send_resp_header(mime, size, range)
|
||||
return True
|
||||
|
||||
@@ -98,7 +101,7 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
|
||||
|
||||
def send_resp_header(self, cont_type, size, range=False):
|
||||
|
||||
|
||||
if range:
|
||||
self.send_response(206, 'Partial Content')
|
||||
else:
|
||||
@@ -108,15 +111,14 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
self.send_header('Accept-Ranges', 'bytes')
|
||||
|
||||
if range:
|
||||
if isinstance(range, (types.TupleType, types.ListType)) and len(range)==3:
|
||||
if isinstance(range, (tuple, list)) and len(range)==3:
|
||||
self.send_header('Content-Range', 'bytes %d-%d/%d' % range)
|
||||
self.send_header('Content-Length', range[1]-range[0]+1)
|
||||
else:
|
||||
raise ValueError('Invalid range value')
|
||||
else:
|
||||
self.send_header('Content-Length', size)
|
||||
|
||||
|
||||
self.send_header('Connection', 'close')
|
||||
self.end_headers()
|
||||
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
import traceback
|
||||
import BaseHTTPServer
|
||||
import sys, traceback
|
||||
if sys.version_info[0] >= 3:
|
||||
from http.server import HTTPServer
|
||||
else:
|
||||
from BaseHTTPServer import HTTPServer
|
||||
from SocketServer import ThreadingMixIn
|
||||
from threading import Thread
|
||||
from platformcode import logger
|
||||
|
||||
|
||||
class Server(ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
||||
class Server(ThreadingMixIn, HTTPServer):
|
||||
daemon_threads = True
|
||||
timeout = 1
|
||||
def __init__(self, address, handler, client):
|
||||
BaseHTTPServer.HTTPServer.__init__(self,address,handler)
|
||||
HTTPServer.__init__(self,address,handler)
|
||||
self._client = client
|
||||
self.running=True
|
||||
self.request = None
|
||||
@@ -21,7 +25,7 @@ class Server(ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
||||
try:
|
||||
self.handle_request()
|
||||
except:
|
||||
print traceback.format_exc()
|
||||
logger.error(traceback.format_exc())
|
||||
|
||||
def run(self):
|
||||
t=Thread(target=self.serve, name='HTTP Server')
|
||||
@@ -30,4 +34,4 @@ class Server(ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
||||
|
||||
def handle_error(self, request, client_address):
|
||||
if not "socket.py" in traceback.format_exc():
|
||||
print traceback.format_exc()
|
||||
logger.error(traceback.format_exc())
|
||||
Reference in New Issue
Block a user