feat: load forgeflux driver
This commit is contained in:
parent
a9e482272e
commit
977796f56d
4 changed files with 32 additions and 4 deletions
|
@ -3,3 +3,4 @@ export SQLITE_TMP="$(pwd)/db/db-sqlx-sqlite/tmp"
|
|||
export SQLITE_DATABASE_URL="sqlite://$SQLITE_TMP/admin.db"
|
||||
export STARCHART__CRAWLER__WAIT_BEFORE_NEXT_API_CALL=0
|
||||
export FORGEJO_HOST=http://localhost:3000
|
||||
export FORGEFLUX_HOST=http://localhost:7000
|
||||
|
|
17
Cargo.lock
generated
17
Cargo.lock
generated
|
@ -1,6 +1,6 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "actix"
|
||||
|
@ -1147,6 +1147,20 @@ dependencies = [
|
|||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "forgeflux"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"actix-rt",
|
||||
"async-trait",
|
||||
"forge-core",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "form_urlencoded"
|
||||
version = "1.0.1"
|
||||
|
@ -2922,6 +2936,7 @@ dependencies = [
|
|||
"derive_more",
|
||||
"federate-core",
|
||||
"forge-core",
|
||||
"forgeflux",
|
||||
"gitea",
|
||||
"lazy_static",
|
||||
"log",
|
||||
|
|
|
@ -16,6 +16,7 @@ members = [
|
|||
"db/db-core",
|
||||
"db/db-sqlx-sqlite",
|
||||
"forge/forge-core",
|
||||
"forge/forgeflux",
|
||||
"forge/gitea",
|
||||
"federate/federate-core",
|
||||
"federate/publiccodeyml"
|
||||
|
@ -76,6 +77,9 @@ path = "./db/db-sqlx-sqlite"
|
|||
[dependencies.gitea]
|
||||
path = "./forge/gitea"
|
||||
|
||||
[dependencies.forgeflux]
|
||||
path = "./forge/forgeflux"
|
||||
|
||||
[dependencies.forge-core]
|
||||
path = "./forge/forge-core"
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ use url::Url;
|
|||
|
||||
use db_core::prelude::*;
|
||||
use forge_core::prelude::*;
|
||||
use forgeflux::ForgeFlux;
|
||||
use gitea::Gitea;
|
||||
|
||||
use crate::ctx::Ctx;
|
||||
|
@ -37,9 +38,16 @@ impl Ctx {
|
|||
info!("[crawl][{instance_url}] Init crawling");
|
||||
let forge: Box<dyn SCForge> =
|
||||
Box::new(Gitea::new(instance_url.clone(), self.client.clone()));
|
||||
if !forge.is_forge().await {
|
||||
unimplemented!("Forge type unimplemented");
|
||||
}
|
||||
let forge = if forge.is_forge().await {
|
||||
forge
|
||||
} else {
|
||||
let forgeflux = Box::new(ForgeFlux::new(instance_url.clone(), self.client.clone()));
|
||||
if forgeflux.is_forge().await {
|
||||
forgeflux
|
||||
} else {
|
||||
unimplemented!("Forge type unimplemented");
|
||||
}
|
||||
};
|
||||
|
||||
let mut page = 1;
|
||||
let url = forge.get_url();
|
||||
|
|
Loading…
Add table
Reference in a new issue