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