{"id":23088201,"url":"https://github.com/yeswiki/yeswiki-extension-importer","last_synced_at":"2025-04-03T17:14:55.929Z","repository":{"id":239550513,"uuid":"798875108","full_name":"YesWiki/yeswiki-extension-importer","owner":"YesWiki","description":"Import datas from various sources to YesWiki as bazar entries","archived":false,"fork":false,"pushed_at":"2024-05-16T10:22:16.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":14,"default_branch":"main","last_synced_at":"2024-05-16T14:02:16.980Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YesWiki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-10T16:51:07.000Z","updated_at":"2024-05-29T23:34:24.637Z","dependencies_parsed_at":"2024-05-13T09:27:33.252Z","dependency_job_id":"25e0b0b7-f5d5-4f64-a63d-5e4b95e3ab31","html_url":"https://github.com/YesWiki/yeswiki-extension-importer","commit_stats":null,"previous_names":["yeswiki/yeswiki-extension-importer"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YesWiki%2Fyeswiki-extension-importer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YesWiki%2Fyeswiki-extension-importer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YesWiki%2Fyeswiki-extension-importer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YesWiki%2Fyeswiki-extension-importer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YesWiki","download_url":"https://codeload.github.com/YesWiki/yeswiki-extension-importer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247043348,"owners_count":20874087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-16T20:16:13.617Z","updated_at":"2025-04-03T17:14:55.899Z","avatar_url":"https://github.com/YesWiki.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Importer YesWiki extension\n\nPouvoir injecter des données dans Bazar depuis une API externe, qui dans un premier temps sera la source de vérité.\n\n## Use cases\n\n- yunohost listes d'apps publiques/privées `YunohostAppImporter`\n- Flux RSS `RssImporter` \n- json custom Odoo events `OdooEventsImporter` \n- caldav/cardcard\n- peertube en embed\n- mastodon activityPub\n- YesWiki to YesWiki\n- Données géographiques de l'état\n\n## Configuration\nadd arrays of dataSources in wakka.config.php\n```php\n 'dataSources' =\u003e [\n        'korben-rss' =\u003e [\n            'url' =\u003e 'https://korben.info/feed',\n            'formId' =\u003e '6',\n            'importer' =\u003e 'Rss',\n        ]\n    ],\n```\n## Utilisation\n\n**Dans le répertoire racine du yeswiki**.\n\nTout importer\n```bash\n./yeswiki importer:sync\n```\n\nImporter la source korben-rss\n```bash\n./yeswiki importer:sync -s korben-rss\n```\n\nPlus d'infos\n```bash\n./yeswiki importer:sync -h\n```\n\n## Cdc\nUne classe abstraite `Importer` et on implémente le code specifique a chaque usage\nles donnees sensibles (token, credentials) sont sauvées de le fichier de conf\npour commencer on lancera la sync en ligne de commande (cli symfony), qui pourra etre appelée dans un CRON\n\nPour chaque usage d'importation : \n- on indique une url d'acces\n- modalités de sync : \n    - [ ] bourrine (on efface tout et on recommence)\n    - [ ] plus subtil\n        - [ ] ajouter les nouvelles fiches\n        - [ ] supprimer les fiches disparues\n        - [ ] mettre à jour les fiches modifiées\n        - [ ] conserver les fiches créées manuellement\n        - [ ] garder les champs customs ajoutés\n\non définit les méthodes suivantes:\n- `authenticate` : pour passer les herses http et/ou ajouter un header, un systeme de login\n- `parseData` : récuperer les données depuis la source de vérité et les mapper pour qu'elles puissent alimenter le modèle de formulaire bazar créé par `createFormModel`\n    - questions : que faire des images/fichiers ? garder l'url ou importer\n- `createFormModel` : générer le formulaire de base de données\n- `syncData` : selon la stratégie choisie ajouter/supprimer/modifier les fiches du modele de formulaire\n\n## Références\n\n- https://priorites.yeswiki.net/posts/55/pouvoir-consommer-automatiquement-de-la-donnees-externe-via-api\n- Doc de nouvelle API YunoHost (TODO Aleks x_x)\n- https://lab12.io/wiki/?MonInfrastructureNomade (voir le bazarliste en bas de page)\n- https://projetclic.cc/modele/?PagePrincipale\n- identifiants yunohost créés par champs bazar https://forge.mrflos.pw/yeswiki/yeswiki-custom-reseau.s-mart.fr/src/branch/main/fields/YunohostUserField.php\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeswiki%2Fyeswiki-extension-importer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyeswiki%2Fyeswiki-extension-importer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeswiki%2Fyeswiki-extension-importer/lists"}