Commit 006fe4a18d826ded14e4896ff251c8bece892faf
1 parent
4eff79a2
Exists in
master
and in
39 other branches
Fixing pop_from_get
Showing
1 changed file
with
9 additions
and
19 deletions
Show diff stats
src/super_archives/utils/url.py
@@ -12,23 +12,13 @@ def append_to_get(path, query=None, **kwargs): | @@ -12,23 +12,13 @@ def append_to_get(path, query=None, **kwargs): | ||
12 | 12 | ||
13 | 13 | ||
14 | def pop_from_get(path, query=None, **kwargs): | 14 | def pop_from_get(path, query=None, **kwargs): |
15 | - # Getting the path with the query | ||
16 | - print query | ||
17 | - | ||
18 | - current_url = u'{}?{}'.format( | ||
19 | - path, | ||
20 | - query, | ||
21 | - ) | 15 | + query_dict = dict(urlparse.parse_qsl(query)) |
22 | for key, value in kwargs.items(): | 16 | for key, value in kwargs.items(): |
23 | - popitem = u'{}={}'.format(key, value) | ||
24 | - if query == popitem: | ||
25 | - return path | ||
26 | - | ||
27 | - if key not in current_url: | ||
28 | - return current_url | ||
29 | - | ||
30 | - first_path, end_path = current_url.split(key) | ||
31 | - end_path_without_element = end_path.split(value, 1) | ||
32 | - path_list = first_path + end_path_without_element | ||
33 | - print path_list | ||
34 | - return u''.join(path_list) | 17 | + if not query_dict.has_key(key): |
18 | + continue | ||
19 | + if query_dict[key] == value: | ||
20 | + del query_dict[key] | ||
21 | + continue | ||
22 | + if not query_dict: | ||
23 | + return u'{}?q='.format(path) | ||
24 | + return u'{}?{}'.format(path, urllib.urlencode(query_dict)) |