1
0
mirror of https://gitlab.com/Anson-Projects/projects.git synced 2025-09-19 03:52:37 +00:00

2 Commits

Author SHA1 Message Date
a6dd33ce5f Merge branch 'ghost-content-extraction' into 'master'
Claude: Ghost Content Extraction

See merge request Anson-Projects/projects!11
2025-08-22 11:32:50 -07:00
556c56fee4 Claude: Ghost Content Extraction 2025-08-22 11:32:49 -07:00
2 changed files with 4 additions and 50 deletions

View File

@@ -5,8 +5,6 @@ publish:
- cd ./ghost-upload
- cargo run
needs:
- job: pages
optional: true
- pages
rules:
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
- if: "$CI_COMMIT_BRANCH == 'ghost-content-extraction'" # Allow testing on this branch

View File

@@ -228,47 +228,10 @@ async fn get_existing_post_id(slug: &str, token: &str) -> Option<String> {
}
async fn fetch_feed(url: &str) -> Vec<Entry> {
println!("Fetching RSS feed from: {}", url);
let content = reqwest::get(url).await.unwrap().text().await.unwrap();
let response = reqwest::get(url).await;
let response = match response {
Ok(resp) => resp,
Err(e) => {
println!("Failed to fetch RSS feed: {}", e);
return vec![];
}
};
let feed = parser::parse(content.as_bytes()).unwrap();
if !response.status().is_success() {
println!("RSS feed request failed with status: {}", response.status());
return vec![];
}
let content = match response.text().await {
Ok(text) => text,
Err(e) => {
println!("Failed to read RSS feed content: {}", e);
return vec![];
}
};
if content.trim().is_empty() {
println!("RSS feed content is empty");
return vec![];
}
println!("RSS feed content preview: {}", &content[..content.len().min(200)]);
let feed = match parser::parse(content.as_bytes()) {
Ok(f) => f,
Err(e) => {
println!("Failed to parse RSS feed: {:?}", e);
println!("Feed content starts with: {}", &content[..content.len().min(500)]);
return vec![];
}
};
println!("Successfully parsed RSS feed with {} entries", feed.entries.len());
feed.entries
}
@@ -366,13 +329,6 @@ async fn main() {
// Prepare the post data
let entries = fetch_feed(feed).await;
if entries.is_empty() {
println!("No entries found in RSS feed or feed parsing failed. Exiting.");
return;
}
println!("Processing {} entries from RSS feed", entries.len());
let post_exists_futures = entries.into_iter().map(|entry| {
let entry_clone = entry.clone();
let token_clone = token.clone();