This commit is contained in:
callebtc
2022-12-26 15:23:14 +01:00
parent b5e99fc708
commit 77af490acf
8 changed files with 587 additions and 31 deletions

View File

@@ -1,16 +1,18 @@
from collections import UserList
from .event import Event
class Filter:
def __init__(
self,
ids: "list[str]"=None,
kinds: "list[int]"=None,
authors: "list[str]"=None,
since: int=None,
until: int=None,
tags: "dict[str, list[str]]"=None,
limit: int=None) -> None:
self,
ids: "list[str]" = None,
kinds: "list[int]" = None,
authors: "list[str]" = None,
since: int = None,
until: int = None,
tags: "dict[str, list[str]]" = None,
limit: int = None,
) -> None:
self.IDs = ids
self.kinds = kinds
self.authors = authors
@@ -33,21 +35,21 @@ class Filter:
if self.tags != None and len(event.tags) == 0:
return False
if self.tags != None:
e_tag_identifiers = [e_tag[0] for e_tag in event.tags]
e_tag_identifiers = [e_tag[0] for e_tag in event.tags]
for f_tag, f_tag_values in self.tags.items():
if f_tag[1:] not in e_tag_identifiers:
return False
for e_tag in event.tags:
if e_tag[1] not in f_tag_values:
return False
return True
def to_json_object(self) -> dict:
res = {}
if self.IDs != None:
res["ids"] = self.IDs
if self.kinds != None:
if self.kinds != None:
res["kinds"] = self.kinds
if self.authors != None:
res["authors"] = self.authors
@@ -62,9 +64,10 @@ class Filter:
res["limit"] = self.limit
return res
class Filters(UserList):
def __init__(self, initlist: "list[Filter]"=[]) -> None:
def __init__(self, initlist: "list[Filter]" = []) -> None:
super().__init__(initlist)
self.data: "list[Filter]"
@@ -76,4 +79,3 @@ class Filters(UserList):
def to_json_array(self) -> list:
return [filter.to_json_object() for filter in self.data]