forked from cadey/xesite
87 lines
2.2 KiB
Rust
87 lines
2.2 KiB
Rust
use color_eyre::eyre::Result;
|
|
use std::{env, time::Duration};
|
|
use tokio::time::sleep as delay_for;
|
|
|
|
#[instrument(err)]
|
|
pub async fn the_cloud() -> Result<()> {
|
|
info!("waiting for things to settle");
|
|
delay_for(Duration::from_secs(10)).await;
|
|
|
|
info!("purging cloudflare cache");
|
|
cloudflare().await?;
|
|
|
|
info!("waiting for the cloudflare cache to purge globally");
|
|
delay_for(Duration::from_secs(45)).await;
|
|
|
|
info!("poking mi");
|
|
mi().await?;
|
|
|
|
info!("poking bing");
|
|
bing().await?;
|
|
|
|
info!("poking google");
|
|
google().await?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[instrument(err)]
|
|
async fn bing() -> Result<()> {
|
|
let cli = reqwest::Client::new();
|
|
cli.get("https://www.bing.com/ping")
|
|
.query(&[("sitemap", "https://christine.website/sitemap.xml")])
|
|
.header("User-Agent", crate::APPLICATION_NAME)
|
|
.send()
|
|
.await?
|
|
.error_for_status()?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[instrument(err)]
|
|
async fn google() -> Result<()> {
|
|
let cli = reqwest::Client::new();
|
|
cli.get("https://www.google.com/ping")
|
|
.query(&[("sitemap", "https://christine.website/sitemap.xml")])
|
|
.header("User-Agent", crate::APPLICATION_NAME)
|
|
.send()
|
|
.await?
|
|
.error_for_status()?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[instrument(err)]
|
|
async fn cloudflare() -> Result<()> {
|
|
let cli = cfcache::Client::new(env::var("CF_TOKEN")?, env::var("CF_ZONE_ID")?)?;
|
|
cli.purge(
|
|
vec![
|
|
"https://christine.website/sitemap.xml",
|
|
"https://christine.website",
|
|
"https://christine.website/blog",
|
|
"https://christine.website/blog.atom",
|
|
"https://christine.website/blog.json",
|
|
"https://christine.website/blog.rss",
|
|
"https://christine.website/gallery",
|
|
"https://christine.website/talks",
|
|
"https://christine.website/resume",
|
|
"https://christine.website/signalboost",
|
|
"https://christine.website/feeds",
|
|
]
|
|
.into_iter()
|
|
.map(|i| i.to_string())
|
|
.collect(),
|
|
)
|
|
.await?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[instrument(err)]
|
|
async fn mi() -> Result<()> {
|
|
let cli = mi::Client::new(env::var("MI_TOKEN")?, crate::APPLICATION_NAME.to_string())?;
|
|
cli.refresh().await?;
|
|
|
|
Ok(())
|
|
}
|