add filters
This commit is contained in:
@@ -70,7 +70,6 @@ class BlueskyFirehosePrinter:
|
|||||||
print(f"Connected to {websocket_url}")
|
print(f"Connected to {websocket_url}")
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
|
||||||
eventws = await websocket.recv()
|
eventws = await websocket.recv()
|
||||||
|
|
||||||
# Parse event
|
# Parse event
|
||||||
@@ -80,15 +79,24 @@ class BlueskyFirehosePrinter:
|
|||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
post = "err:" + eventws
|
post = "err:" + eventws
|
||||||
|
|
||||||
if post.type not in onlys: continue
|
#try: post.type
|
||||||
if post.type in skips: continue
|
#except Exception as e:
|
||||||
|
# logger.debug(f"no type on post object. {e=} {post.toJSON()=}")
|
||||||
|
# continue
|
||||||
|
#try: post.record["$type"]
|
||||||
|
#except Exception as e:
|
||||||
|
# logger.debug(f"no post.commit.$type key. {e=} {post.commit.toJSON()=}")
|
||||||
|
# continue
|
||||||
|
|
||||||
|
# s/type/kind/g -- com -> commit
|
||||||
|
if onlys and post.kind not in onlys: continue
|
||||||
|
if post.kind in skips: continue
|
||||||
# type in ["com", "id", "acc"] # [com]mit, [id]entity, [acc]ount, ..? [del]ete? or commit type
|
# type in ["com", "id", "acc"] # [com]mit, [id]entity, [acc]ount, ..? [del]ete? or commit type
|
||||||
ts = post.time_us//10e3
|
ts = post.time_us//10e3
|
||||||
|
|
||||||
|
|
||||||
# Select color based on post ID
|
# Select color based on post ID
|
||||||
#color = self._get_post_color(post.time_us//10e4)
|
#color = self._get_post_color(post.time_us//10e4)
|
||||||
hsv1 = [ (ts % 255)/255, .8, .8]
|
hsv1 = [ (ts/4 % 255)/255, .8, .8]
|
||||||
|
|
||||||
# Generate a unique post ID
|
# Generate a unique post ID
|
||||||
#post_id = str(hash(json.dumps(post)))
|
#post_id = str(hash(json.dumps(post)))
|
||||||
@@ -97,15 +105,12 @@ class BlueskyFirehosePrinter:
|
|||||||
# Extract and print text
|
# Extract and print text
|
||||||
#text = self._extract_post_text(post)
|
#text = self._extract_post_text(post)
|
||||||
try:
|
try:
|
||||||
if post.type in ["com"]:
|
#if post.type in ["com"]:
|
||||||
if cfilters.get("-") and any(map(lambda w: w in post.commit.type, cfilters.get("-"))):
|
if post.kind in ["commit"]:
|
||||||
continue
|
if cfilters.get("-") and any(map(lambda w: w in post.commit.type, cfilters.get("-"))): continue
|
||||||
if cfilters.get("+") and not any(map(lambda w: w in post.commit.type, cfilters.get("+"))):
|
if cfilters.get("+") and not any(map(lambda w: w in post.commit.type, cfilters.get("+"))): continue
|
||||||
continue
|
if fdrops and any(map(lambda w: w in post.commit.record.text, fdrops)): continue
|
||||||
if fdrops and any(map(lambda w: w in post.commit.record.text, fdrops)):
|
if fkeeps and not any(map(lambda w: w in post.commit.record.text, fkeeps)): continue
|
||||||
continue
|
|
||||||
if fkeeps and not any(map(lambda w: w in post.commit.record.text, fkeeps)):
|
|
||||||
continue
|
|
||||||
|
|
||||||
if post.commit.record.text:
|
if post.commit.record.text:
|
||||||
text = post.commit.record.text
|
text = post.commit.record.text
|
||||||
@@ -182,8 +187,6 @@ async def main(skips=[], onlys=[], count=None, cfilters={}, fkeeps=[], fdrops=[]
|
|||||||
printer = BlueskyFirehosePrinter()
|
printer = BlueskyFirehosePrinter()
|
||||||
await printer.connect_and_print(BLUESKY_FIREHOSE_WS, skips=skips, onlys=onlys, count=count, cfilters=cfilters, fkeeps=fkeeps, fdrops=fdrops)
|
await printer.connect_and_print(BLUESKY_FIREHOSE_WS, skips=skips, onlys=onlys, count=count, cfilters=cfilters, fkeeps=fkeeps, fdrops=fdrops)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def cli_main(skips="", only="", cfilters="", filters="", count=None):
|
def cli_main(skips="", only="", cfilters="", filters="", count=None):
|
||||||
"""
|
"""
|
||||||
run the async func.
|
run the async func.
|
||||||
@@ -195,7 +198,7 @@ def cli_main(skips="", only="", cfilters="", filters="", count=None):
|
|||||||
"""
|
"""
|
||||||
# Run the async main function
|
# Run the async main function
|
||||||
skips = skips.split(",")
|
skips = skips.split(",")
|
||||||
onlys = only.split(",")
|
onlys = only # onlys = list(only)# onlys = only.split(",")
|
||||||
cfs = cfilters.split(",")
|
cfs = cfilters.split(",")
|
||||||
cfilters = {"+": [f[1:] for f in cfs if f[:1] == "+"],
|
cfilters = {"+": [f[1:] for f in cfs if f[:1] == "+"],
|
||||||
"-": [f[1:] for f in cfs if f[:1] == "-"] }
|
"-": [f[1:] for f in cfs if f[:1] == "-"] }
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"did":"did:plc:hdps5qzxhbhmgyfht7xbrf4u","time_us":1732139039346541,"type":"com","kind":"commit","commit":{"rev":"3lbfwa42a6326","type":"c","operation":"create","collection":"app.bsky.feed.post","rkey":"3lbfwa3w22c2d","record":{"$type":"app.bsky.feed.post","createdAt":"2024-11-20T21:43:58.933Z","langs":["en"],"reply":{"parent":{"cid":"bafyreidaivmfhldd4jzjxjztfxywkgszhovguvgd6hfr6qbumg73imerpe","uri":"at://did:plc:5ybjw77wuat2wpeq434hzyen/app.bsky.feed.post/3kwi7jcnbsf2s"},"root":{"cid":"bafyreigugwpm7vfdwltwyr4j6lb4bixdl3irdymasyy6ponm2u23sfp6aq","uri":"at://did:plc:dfdn5h5ejeloscqpou577jvy/app.bsky.feed.post/3kwhy3mlxte2o"}},"text":"I agree"},"cid":"bafyreifoxsw7x4tstgm5367zx2dauyrt4qt6j65amv2zvsqrq43tkve7mu"}}
|
{"did":"did:plc:fqokdrufojdd3gj7kdsjyd6z","time_us":1732570857794931,"type":"com","kind":"commit","commit":{"rev":"3lbsifbq35m27","type":"c","operation":"create","collection":"app.bsky.feed.post","rkey":"3lbsif7jhyc2l","record":{"$type":"app.bsky.feed.post","createdAt":"2024-11-25T21:40:54.701Z","embed":{"$type":"app.bsky.embed.external","external":{"description":"Tappen: Nederland heeft heimelijk een nieuw tapsysteem gekocht van Israëlische makelij. Dat zou een ander systeem, dat niet werkt, moeten vervangen. Maar onderaan de streep werkt de politie nog altijd...","thumb":{"$type":"blob","ref":{"$link":"bafkreiaknrue43kutcz7u2hmxlmpwmwi6g5juoobl6dluaa3dou3wqqznq"},"mimeType":"image/jpeg","size":651783},"title":"Kamer verkeerd geïnformeerd over aanschaf van Israëlische afluistersystemen voor de politie die miljoenen kosten en na jaren nog steeds niet werken","uri":"https://www.nrc.nl/nieuws/2024/11/25/kamer-verkeerd-geinformeerd-over-aanschaf-van-israelische-afluistersystemen-voor-de-politie-die-miljoenen-kosten-en-na-jaren-nog-steeds-niet-werken-a4874410"}},"facets":[{"features":[{"$type":"app.bsky.richtext.facet#link","uri":"https://www.nrc.nl/nieuws/2024/11/25/kamer-verkeerd-geinformeerd-over-aanschaf-van-israelische-afluistersystemen-voor-de-politie-die-miljoenen-kosten-en-na-jaren-nog-steeds-niet-werken-a4874410"}],"index":{"byteEnd":302,"byteStart":276}}],"langs":["en"],"text":"Toen Yesilgöz nog minister was en Dick Schoof haar hoogste ambtenaar, kocht het ministerie stiekem een afluistersysteem voor de politie van een omstreden Israëlische defensiebedrijf. Het systeem werkt niet. Dat lijkt me op zich goed nieuws: luistert de Mossad ook niet mee.\nwww.nrc.nl/nieuws/2024/..."},"cid":"bafyreiffuiaz4c3pv5o7yhy2rf5idsk7dcbyztax4ekn624wtldy5ns6by"}}
|
||||||
|
|||||||
Reference in New Issue
Block a user