mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-17 05:47:50 +00:00
Fixed bug where blocklist was reset when not imported
Date is now of remote blocklist (makes checking more precise) Fixed web ui from crashing (still doesn't work though)
This commit is contained in:
parent
a6de74c858
commit
7c6319b1db
@ -152,12 +152,6 @@ class Core(CorePluginBase):
|
|||||||
self.download_blocklist(True)
|
self.download_blocklist(True)
|
||||||
return
|
return
|
||||||
|
|
||||||
self.is_importing = True
|
|
||||||
log.debug("Reset IP Filter..")
|
|
||||||
component.get("Core").reset_ip_filter()
|
|
||||||
|
|
||||||
self.num_blocked = 0
|
|
||||||
|
|
||||||
# If we have a newly downloaded file, lets try that before the .cache
|
# If we have a newly downloaded file, lets try that before the .cache
|
||||||
if os.path.exists(deluge.configmanager.get_config_dir("blocklist.download")):
|
if os.path.exists(deluge.configmanager.get_config_dir("blocklist.download")):
|
||||||
bl_file = deluge.configmanager.get_config_dir("blocklist.download")
|
bl_file = deluge.configmanager.get_config_dir("blocklist.download")
|
||||||
@ -165,12 +159,17 @@ class Core(CorePluginBase):
|
|||||||
elif self.has_imported:
|
elif self.has_imported:
|
||||||
# Blocklist is up to date so doesn't need to be imported
|
# Blocklist is up to date so doesn't need to be imported
|
||||||
log.debug("Latest blocklist is already imported")
|
log.debug("Latest blocklist is already imported")
|
||||||
self.is_importing = False
|
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
bl_file = deluge.configmanager.get_config_dir("blocklist.cache")
|
bl_file = deluge.configmanager.get_config_dir("blocklist.cache")
|
||||||
using_download = False
|
using_download = False
|
||||||
|
|
||||||
|
self.is_importing = True
|
||||||
|
log.debug("Reset IP Filter..")
|
||||||
|
component.get("Core").reset_ip_filter()
|
||||||
|
|
||||||
|
self.num_blocked = 0
|
||||||
|
|
||||||
# Open the file for reading
|
# Open the file for reading
|
||||||
try:
|
try:
|
||||||
read_list = FORMATS[self.config["listtype"]][1](bl_file)
|
read_list = FORMATS[self.config["listtype"]][1](bl_file)
|
||||||
@ -198,9 +197,6 @@ class Core(CorePluginBase):
|
|||||||
# Set information about the file
|
# Set information about the file
|
||||||
self.config["file_type"] = self.config["listtype"]
|
self.config["file_type"] = self.config["listtype"]
|
||||||
self.config["file_url"] = self.config["url"]
|
self.config["file_url"] = self.config["url"]
|
||||||
list_stats = os.stat(deluge.configmanager.get_config_dir("blocklist.cache"))
|
|
||||||
self.config["file_date"] = datetime.datetime.fromtimestamp(list_stats.st_mtime).ctime()
|
|
||||||
self.config["file_size"] = list_size = list_stats.st_size
|
|
||||||
|
|
||||||
self.is_importing = False
|
self.is_importing = False
|
||||||
self.has_imported = True
|
self.has_imported = True
|
||||||
@ -235,7 +231,7 @@ class Core(CorePluginBase):
|
|||||||
for i in xrange(self.config["try_times"]):
|
for i in xrange(self.config["try_times"]):
|
||||||
log.debug("Attempting to download blocklist %s", self.config["url"])
|
log.debug("Attempting to download blocklist %s", self.config["url"])
|
||||||
try:
|
try:
|
||||||
urllib.urlretrieve(
|
(filename, headers) = urllib.urlretrieve(
|
||||||
self.config["url"],
|
self.config["url"],
|
||||||
deluge.configmanager.get_config_dir("blocklist.download"),
|
deluge.configmanager.get_config_dir("blocklist.download"),
|
||||||
on_retrieve_data)
|
on_retrieve_data)
|
||||||
@ -245,6 +241,8 @@ class Core(CorePluginBase):
|
|||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
log.debug("Blocklist successfully downloaded..")
|
log.debug("Blocklist successfully downloaded..")
|
||||||
|
self.config["file_date"] = datetime.datetime.strptime(headers["last-modified"],"%a, %d %b %Y %H:%M:%S GMT").ctime()
|
||||||
|
self.config["file_size"] = long(headers["content-length"])
|
||||||
gobject.idle_add(_call_callback, callback, load)
|
gobject.idle_add(_call_callback, callback, load)
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -255,18 +253,16 @@ class Core(CorePluginBase):
|
|||||||
log.debug("New blocklist waiting to be imported")
|
log.debug("New blocklist waiting to be imported")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
if os.path.exists(deluge.configmanager.get_config_dir("blocklist.cache")):
|
||||||
# Check current block lists time stamp and decide if it needs to be replaced
|
# Check current block lists time stamp and decide if it needs to be replaced
|
||||||
list_stats = os.stat(deluge.configmanager.get_config_dir("blocklist.cache"))
|
list_size = long(self.config["file_size"])
|
||||||
list_time = datetime.datetime.fromtimestamp(list_stats.st_mtime)
|
list_time = datetime.datetime.strptime(self.config["file_date"], "%a %b %d %H:%M:%S %Y")
|
||||||
list_size = list_stats.st_size
|
else:
|
||||||
current_time = datetime.datetime.today()
|
log.debug("Blocklist doesn't exist")
|
||||||
except Exception, e:
|
|
||||||
log.debug("Unable to get file stats: %s", e)
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# If local blocklist file exists but nothing is in it
|
# If local blocklist file exists but nothing is in it
|
||||||
if list_size == 0:
|
if not list_size or list_size == 0:
|
||||||
log.debug("Empty blocklist")
|
log.debug("Empty blocklist")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ class BlockListCfgForm(forms.Form):
|
|||||||
|
|
||||||
def save(self, data):
|
def save(self, data):
|
||||||
cfg = dict(data)
|
cfg = dict(data)
|
||||||
del cfg["btn_download_now"]
|
|
||||||
del cfg["btn_import_now"]
|
del cfg["btn_import_now"]
|
||||||
|
del cfg["btn_force_download"]
|
||||||
sclient.blocklist.set_config(cfg)
|
sclient.blocklist.set_config(cfg)
|
||||||
if data.btn_import_now:
|
if data.btn_import_now:
|
||||||
aclient.blocklist.import_list(None, data.btn_force_download)
|
aclient.blocklist.import_list(None, data.btn_force_download)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user