···16* `ZSTD_DICTIONARY` - The path to the ZSTD dictionary to use. Required when compression is enabled.
17* `CONSUMER_TASK_ENABLE` - Whether or not to enable the consumer tasks. Default `true`.
18* `VMC_TASK_ENABLE` - Whether or not to enable the VMC (verification method cache) tasks. Default `true`.
0000019* `PLC_HOSTNAME` - The hostname of the PLC server to use for VMC tasks. Default `plc.directory`.
20* `FEEDS` - The path to the feeds configuration file.
21* `COLLECTIONS` - The collections to consume. Default `app.bsky.feed.post`.
···16* `ZSTD_DICTIONARY` - The path to the ZSTD dictionary to use. Required when compression is enabled.
17* `CONSUMER_TASK_ENABLE` - Whether or not to enable the consumer tasks. Default `true`.
18* `VMC_TASK_ENABLE` - Whether or not to enable the VMC (verification method cache) tasks. Default `true`.
19+* `CACHE_TASK_ENABLE` - Whether or not to enable the cache tasks. Default `true`.
20+* `CACHE_TASK_INTERVAL` - The interval to run the cache tasks. Default `3m`.
21+* `CLEANUP_TASK_ENABLE` - Whether or not to enable the cleanup tasks. Default `true`.
22+* `CLEANUP_TASK_INTERVAL` - The interval to run the cleanup tasks. Default `1h`.
23+* `CLEANUP_TASK_MAX_AGE` - The maximum age of a post before it is considered stale and deleted from storage. Default `48h`.
24* `PLC_HOSTNAME` - The hostname of the PLC server to use for VMC tasks. Default `plc.directory`.
25* `FEEDS` - The path to the feeds configuration file.
26* `COLLECTIONS` - The collections to consume. Default `app.bsky.feed.post`.
+2-3
src/bin/dropsonde.rs
···1use anyhow::{anyhow, Context, Result};
2-use supercell::matcher::RhaiMatcher;
3use supercell::matcher::Matcher;
045fn main() -> Result<()> {
6 let mut rhai_input_path: Option<String> = None;
···29 let value: serde_json::Value =
30 serde_json::from_slice(&json_content).context("parsing input_json failed")?;
3132- let matcher = RhaiMatcher::new(&rhai_input_path)
33- .context("could not construct matcher")?;
34 let result = matcher.matches(&value)?;
3536 let result = result.ok_or(anyhow!("no matches found"))?;
···1use anyhow::{anyhow, Context, Result};
02use supercell::matcher::Matcher;
3+use supercell::matcher::RhaiMatcher;
45fn main() -> Result<()> {
6 let mut rhai_input_path: Option<String> = None;
···29 let value: serde_json::Value =
30 serde_json::from_slice(&json_content).context("parsing input_json failed")?;
3132+ let matcher = RhaiMatcher::new(&rhai_input_path).context("could not construct matcher")?;
033 let result = matcher.matches(&value)?;
3435 let result = result.ok_or(anyhow!("no matches found"))?;