mirror of
https://github.com/spikecodes/libreddit.git
synced 2026-01-25 14:04:07 +01:00
Individually proxy previews
This commit is contained in:
22
src/proxy.rs
22
src/proxy.rs
@@ -4,14 +4,9 @@ use tide::{Request, Response};
|
||||
|
||||
pub async fn handler(req: Request<()>) -> tide::Result {
|
||||
let domains = vec![
|
||||
// EMOJI
|
||||
"emoji.redditmedia.com",
|
||||
// ICONS
|
||||
"styles.redditmedia.com",
|
||||
"www.redditstatic.com",
|
||||
// PREVIEWS
|
||||
"preview.redd.it",
|
||||
"external-preview.redd.it",
|
||||
];
|
||||
|
||||
let decoded = decode(req.param("url").unwrap_or_default()).map(|bytes| String::from_utf8(bytes).unwrap_or_default());
|
||||
@@ -58,6 +53,23 @@ pub async fn emoji(req: Request<()>) -> tide::Result {
|
||||
request(url).await
|
||||
}
|
||||
|
||||
pub async fn preview(req: Request<()>) -> tide::Result {
|
||||
let id = req.param("id").unwrap_or_default();
|
||||
let query = req.param("query").unwrap_or_default();
|
||||
let prefix = match req.param("location").unwrap_or_default() {
|
||||
"ext" => "external-",
|
||||
_ => ""
|
||||
};
|
||||
let url = format!("https://{}preview.redd.it/{}?{}", prefix, id, query);
|
||||
request(url).await
|
||||
}
|
||||
|
||||
pub async fn style(req: Request<()>) -> tide::Result {
|
||||
let path = req.param("path").unwrap_or_default();
|
||||
let url = format!("https://styles.redditmedia.com/{}", path);
|
||||
request(url).await
|
||||
}
|
||||
|
||||
async fn request(url: String) -> tide::Result {
|
||||
let http = surf::get(url).await.unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user