diff options
author | Lorenz Diener <[email protected]> | 2018-07-30 23:08:30 +0200 |
---|---|---|
committer | Lorenz Diener <[email protected]> | 2018-07-30 23:08:30 +0200 |
commit | 2d81e9b2cbd3e3c1abd3a472220c667e89b29f5e (patch) | |
tree | d8aceee169716fe834edc379fbee5cef86823976 /mastodon | |
parent | d04b3da7d5a8f130ad723e5f8797f314cdc072ca (diff) | |
download | mastodon.py-2d81e9b2cbd3e3c1abd3a472220c667e89b29f5e.tar.gz |
Add filter tests
Diffstat (limited to 'mastodon')
-rw-r--r-- | mastodon/Mastodon.py | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/mastodon/Mastodon.py b/mastodon/Mastodon.py index 4173c8c..e6d8268 100644 --- a/mastodon/Mastodon.py +++ b/mastodon/Mastodon.py | |||
@@ -837,7 +837,7 @@ class Mastodon: | |||
837 | # Reading data: Keyword filters | 837 | # Reading data: Keyword filters |
838 | ### | 838 | ### |
839 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) | 839 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) |
840 | def filters(): | 840 | def filters(self): |
841 | """ | 841 | """ |
842 | Fetch all of the logged-in users filters. | 842 | Fetch all of the logged-in users filters. |
843 | 843 | ||
@@ -846,7 +846,7 @@ class Mastodon: | |||
846 | return self.__api_request('GET', '/api/v1/filters') | 846 | return self.__api_request('GET', '/api/v1/filters') |
847 | 847 | ||
848 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) | 848 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) |
849 | def filter(id): | 849 | def filter(self, id): |
850 | """ | 850 | """ |
851 | Fetches information about the filter with the specified `id`. | 851 | Fetches information about the filter with the specified `id`. |
852 | 852 | ||
@@ -876,8 +876,7 @@ class Mastodon: | |||
876 | if keyword_filter["whole_word"] == True: | 876 | if keyword_filter["whole_word"] == True: |
877 | filter_string = "\\b" + filter_string + "\\b" | 877 | filter_string = "\\b" + filter_string + "\\b" |
878 | filter_strings.append(filter_string) | 878 | filter_strings.append(filter_string) |
879 | filter_re = re.compile("|".join(filter_strings)) | 879 | filter_re = re.compile("|".join(filter_strings), flags = re.IGNORECASE) |
880 | return filter_re | ||
881 | 880 | ||
882 | # Apply | 881 | # Apply |
883 | filter_results = [] | 882 | filter_results = [] |
@@ -888,7 +887,7 @@ class Mastodon: | |||
888 | filter_text = filter_status["content"] | 887 | filter_text = filter_status["content"] |
889 | filter_text = re.sub("<.*?>", " ", filter_text) | 888 | filter_text = re.sub("<.*?>", " ", filter_text) |
890 | filter_text = re.sub('\s+', ' ', filter_text).strip() | 889 | filter_text = re.sub('\s+', ' ', filter_text).strip() |
891 | if not filter_re.match(filter_text): | 890 | if not filter_re.search(filter_text): |
892 | filter_results.append(filter_object) | 891 | filter_results.append(filter_object) |
893 | return filter_results | 892 | return filter_results |
894 | 893 | ||
@@ -1539,7 +1538,7 @@ class Mastodon: | |||
1539 | # Writing data: Keyword filters | 1538 | # Writing data: Keyword filters |
1540 | ### | 1539 | ### |
1541 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) | 1540 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) |
1542 | def filter_create(phrase, context, irreversible = False, whole_word = True, expires_in = None): | 1541 | def filter_create(self, phrase, context, irreversible = False, whole_word = True, expires_in = None): |
1543 | """ | 1542 | """ |
1544 | Creates a new keyword filter. `phrase` is the phrase that should be | 1543 | Creates a new keyword filter. `phrase` is the phrase that should be |
1545 | filtered out, `context` specifies from where to filter the keywords. | 1544 | filtered out, `context` specifies from where to filter the keywords. |
@@ -1565,7 +1564,7 @@ class Mastodon: | |||
1565 | return self.__api_request('POST', '/api/v1/filters', params) | 1564 | return self.__api_request('POST', '/api/v1/filters', params) |
1566 | 1565 | ||
1567 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) | 1566 | @api_version("2.4.3", "2.4.3", __DICT_VERSION_FILTER) |
1568 | def filter_update(id, phrase = None, context = None, irreversible = None, whole_word = None, expires_in = None): | 1567 | def filter_update(self, id, phrase = None, context = None, irreversible = None, whole_word = None, expires_in = None): |
1569 | """ | 1568 | """ |
1570 | Updates the filter with the given `id`. Parameters are the same | 1569 | Updates the filter with the given `id`. Parameters are the same |
1571 | as in `filter_create()`. | 1570 | as in `filter_create()`. |
@@ -1578,7 +1577,7 @@ class Mastodon: | |||
1578 | return self.__api_request('PUT', url, params) | 1577 | return self.__api_request('PUT', url, params) |
1579 | 1578 | ||
1580 | @api_version("2.4.3", "2.4.3", "2.4.3") | 1579 | @api_version("2.4.3", "2.4.3", "2.4.3") |
1581 | def filter_delete(id): | 1580 | def filter_delete(self, id): |
1582 | """ | 1581 | """ |
1583 | Deletes the filter with the given `id`. | 1582 | Deletes the filter with the given `id`. |
1584 | """ | 1583 | """ |
@@ -2067,13 +2066,14 @@ class Mastodon: | |||
2067 | known_date_fields = ["created_at", "week", "day", "expires_at"] | 2066 | known_date_fields = ["created_at", "week", "day", "expires_at"] |
2068 | for k, v in json_object.items(): | 2067 | for k, v in json_object.items(): |
2069 | if k in known_date_fields: | 2068 | if k in known_date_fields: |
2070 | try: | 2069 | if v != None: |
2071 | if isinstance(v, int): | 2070 | try: |
2072 | json_object[k] = datetime.datetime.fromtimestamp(v, pytz.utc) | 2071 | if isinstance(v, int): |
2073 | else: | 2072 | json_object[k] = datetime.datetime.fromtimestamp(v, pytz.utc) |
2074 | json_object[k] = dateutil.parser.parse(v) | 2073 | else: |
2075 | except: | 2074 | json_object[k] = dateutil.parser.parse(v) |
2076 | raise MastodonAPIError('Encountered invalid date.') | 2075 | except: |
2076 | raise MastodonAPIError('Encountered invalid date.') | ||
2077 | return json_object | 2077 | return json_object |
2078 | 2078 | ||
2079 | @staticmethod | 2079 | @staticmethod |
@@ -2406,6 +2406,12 @@ class Mastodon: | |||
2406 | del params['self'] | 2406 | del params['self'] |
2407 | param_keys = list(params.keys()) | 2407 | param_keys = list(params.keys()) |
2408 | for key in param_keys: | 2408 | for key in param_keys: |
2409 | if isinstance(params[key], bool) and params[key] == False: | ||
2410 | params[key] = '0' | ||
2411 | if isinstance(params[key], bool) and params[key] == True: | ||
2412 | params[key] = '1' | ||
2413 | |||
2414 | for key in param_keys: | ||
2409 | if params[key] is None or key in exclude: | 2415 | if params[key] is None or key in exclude: |
2410 | del params[key] | 2416 | del params[key] |
2411 | 2417 | ||
@@ -2414,7 +2420,7 @@ class Mastodon: | |||
2414 | if isinstance(params[key], list): | 2420 | if isinstance(params[key], list): |
2415 | params[key + "[]"] = params[key] | 2421 | params[key + "[]"] = params[key] |
2416 | del params[key] | 2422 | del params[key] |
2417 | 2423 | ||
2418 | return params | 2424 | return params |
2419 | 2425 | ||
2420 | def __unpack_id(self, id): | 2426 | def __unpack_id(self, id): |