mirror of
				https://github.com/TeamPiped/piped-proxy.git
				synced 2024-08-14 23:50:45 +00:00 
			
		
		
		
	Add parameter to disable rewriting.
This commit is contained in:
		
							parent
							
								
									82d5b16d85
								
							
						
					
					
						commit
						71cb04d028
					
				
					 1 changed files with 58 additions and 39 deletions
				
			
		
							
								
								
									
										21
									
								
								src/main.rs
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								src/main.rs
									
										
									
									
									
								
							| 
						 | 
					@ -98,6 +98,14 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let res = query.get("host");
 | 
					    let res = query.get("host");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let rewrite = {
 | 
				
			||||||
 | 
					        if let Some(rewrite) = query.get("rewrite") {
 | 
				
			||||||
 | 
					            rewrite == "true"
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if res.is_none() {
 | 
					    if res.is_none() {
 | 
				
			||||||
        return Err("No host provided".into());
 | 
					        return Err("No host provided".into());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -123,8 +131,17 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
 | 
				
			||||||
        return Err("Domain not allowed".into());
 | 
					        return Err("Domain not allowed".into());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let qs = {
 | 
				
			||||||
 | 
					        let qs = query.clone();
 | 
				
			||||||
 | 
					        let collected = qs.into_pairs()
 | 
				
			||||||
 | 
					            .into_iter()
 | 
				
			||||||
 | 
					            .filter(|(key, _)| key != "host" && key != "rewrite")
 | 
				
			||||||
 | 
					            .collect::<Vec<_>>();
 | 
				
			||||||
 | 
					        QString::new(collected)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let mut url = Url::parse(&format!("https://{}{}", host, req.path()))?;
 | 
					    let mut url = Url::parse(&format!("https://{}{}", host, req.path()))?;
 | 
				
			||||||
    url.set_query(Some(req.query_string()));
 | 
					    url.set_query(Some(qs.to_string().as_str()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let mut request = Request::new(
 | 
					    let mut request = Request::new(
 | 
				
			||||||
        req.method().clone(),
 | 
					        req.method().clone(),
 | 
				
			||||||
| 
						 | 
					@ -157,6 +174,7 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if rewrite {
 | 
				
			||||||
        if let Some(content_type) = resp.headers().get("content-type") {
 | 
					        if let Some(content_type) = resp.headers().get("content-type") {
 | 
				
			||||||
            if content_type == "image/jpeg" {
 | 
					            if content_type == "image/jpeg" {
 | 
				
			||||||
                let resp_bytes = resp.bytes().await.unwrap();
 | 
					                let resp_bytes = resp.bytes().await.unwrap();
 | 
				
			||||||
| 
						 | 
					@ -204,6 +222,7 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
 | 
				
			||||||
                return Ok(response.body(resp_str));
 | 
					                return Ok(response.body(resp_str));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Stream response
 | 
					    // Stream response
 | 
				
			||||||
    Ok(response.streaming(resp.bytes_stream()))
 | 
					    Ok(response.streaming(resp.bytes_stream()))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue