Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

odnes-indexer-example

Tento projekt slouží jako šablona pro vytvoření nového datového zdroje pro nástroj ODNES. Díky modulární architektuře je rozšíření systému o vlastní datasource snadné a nevyžaduje žádné zásahy do jádra aplikace.

Požadavky

  • Python 3.9+
  • Poetry pro správu balíčků a závislostí

Postup přidání nového zdroje

1. Přejmenujte šablonu

V adresáři src/odnes/datasources/ se nachází ukázkový soubor example.py. Tento soubor slouží jako výchozí šablona. Přejmenujte jej podle vašeho zdroje, např.:

mv src/odnes/datasources/example.py src/odnes/datasources/dnsdb.py

2. Přejmenujte třídu

Uvnitř nového souboru přejmenujte třídu Example na název odpovídající vašemu zdroji, např. DNSDB. Třída musí dědit ze základní třídy Datasource a implementovat metodu:

async def search(self, domain: str) -> list[DatasourceObject]:
    ...

3. Upravte pyproject.toml

Pokud chcete nový datasource distribuovat jako samostatný balíček, upravte v souboru pyproject.toml název projektu, například:

name = "odnes-indexer-dnsdb"

Doporučuje se aktualizovat i popis, autora, verzi atd.

4. Instalace balíčku

Pomocí Poetry můžete balíček sestavit a nainstalovat:

poetry build -f wheel
pip install dist/odnes_indexer_dnsdb-*.whl

Alternativně lze balíček nainstalovat přímo ze zdrojového adresáře:

pip install .

Automatická registrace

ODNES při spuštění automaticky načte všechny třídy dědící z Datasource — není tedy nutné upravovat žádný registr ani konfiguraci. Název třídy slouží jako identifikátor zdroje (např. pro CLI přepínač -D DNSDB).

Poznámka

Každý nový datasource může využívat vlastní závislosti definované v pyproject.toml, a být distribuován jako samostatný plugin. Tím je zajištěna čistá oddělenost jednotlivých komponent.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages