add filters

This commit is contained in:
Loren McIntyre
2025-02-16 19:11:52 -08:00
parent 96de250ef8
commit f4da3d7a5f
2 changed files with 21 additions and 18 deletions

View File

@@ -70,7 +70,6 @@ class BlueskyFirehosePrinter:
print(f"Connected to {websocket_url}")
while True:
try:
eventws = await websocket.recv()
# Parse event
@@ -80,15 +79,24 @@ class BlueskyFirehosePrinter:
except json.JSONDecodeError:
post = "err:" + eventws
if post.type not in onlys: continue
if post.type in skips: continue
#try: post.type
#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
ts = post.time_us//10e3
# Select color based on post ID
#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
#post_id = str(hash(json.dumps(post)))
@@ -97,15 +105,12 @@ class BlueskyFirehosePrinter:
# Extract and print text
#text = self._extract_post_text(post)
try:
if post.type in ["com"]:
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("+"))):
continue
if fdrops and any(map(lambda w: w in post.commit.record.text, fdrops)):
continue
if fkeeps and not any(map(lambda w: w in post.commit.record.text, fkeeps)):
continue
#if post.type in ["com"]:
if post.kind in ["commit"]:
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("+"))): continue
if fdrops and any(map(lambda w: w in post.commit.record.text, fdrops)): continue
if fkeeps and not any(map(lambda w: w in post.commit.record.text, fkeeps)): continue
if 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()
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):
"""
run the async func.
@@ -195,7 +198,7 @@ def cli_main(skips="", only="", cfilters="", filters="", count=None):
"""
# Run the async main function
skips = skips.split(",")
onlys = only.split(",")
onlys = only # onlys = list(only)# onlys = only.split(",")
cfs = cfilters.split(",")
cfilters = {"+": [f[1:] for f in cfs if f[:1] == "+"],
"-": [f[1:] for f in cfs if f[:1] == "-"] }

View File

@@ -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"}}