PythonからREDMINEのWIKIにアクセスする方法の検討
背景
REDMINE-WIKIについて、プログラミングで操作する方法を調べている。
(話の経緯は下記参照)
今回はpythonからREDMINEのWIKIにアクセスする方法を検討した。
前提
ライブラリはpython-redmineを使う。 https://python-redmine.com/resources/wiki_page.html
すでにREDMINEには接続済みの状態とする。 (詳細のコードは省略する)
Wikiへのアクセスコード
以下はpython-redmineを使ったクラスメソドである。
from redminelib import Redmine
class RedmineWork:
def read_project(self):
projects = self.api.project.all( limit=100)
wikipages =[]
for pjt in projects:
wikis = self.read_wikis(pjt.id)
for wiki in wikis:
wikipage = self.get_wiki_byname(wiki.title,pjt.id)
wikipages.append(wikipage)
return wikipages
def read_wikis(self,id):
pages = self.api.wiki_page.filter(project_id=id)
return pages
def get_wiki_byname(self,name,id):
page = self.api.wiki_page.get(name,project_id=id)
return page
def wikieditor(self):
wikipages = self.read_project()
pdb.set_trace()
Wikiコンテンツへのアクセス方法
- プロジェクトを全部引っこ抜く read_project
- wikiを全部引っこ抜く read_wikis ---> この時点では中身は取れていない!!!
- wikiの記事を取りに行く get_wiki_byname ---> ここでやっと取りに行ける
つまづいていた点
以下のメソドの違いでつまづいていた。。。(こんな名付けでは、誤解するのも当然である)
.filter ---> これはリソースセット(wiki_pages)で取りに行くもの(wiki-idしか入っていない)
.get ---> page-idを指定して、初めて中身(wiki_contents)を取りに行くことができる
そもそも、WIKIのER図を理解していなかった。
https://www.flickr.com/photos/kiwamu/3851572819/
これを突破口として、以下のメソドを実装する。
- コンテンツ丸ごとを取得するAPI
- グラフィック上に、wikiツリーを表示(ドラッグ&ドロップで、階層構造の付け替えが出来る)
- Wikiの親子関係を修正後に、Redmineデータベースに反映する
- wikiインポート、エクスポートを作る
- 機械学習でクラスタリングして、自動整理を行う → 最終的にここまで出来れば上等である
Author And Source
この問題について(PythonからREDMINEのWIKIにアクセスする方法の検討), 我々は、より多くの情報をここで見つけました https://qiita.com/EasyCording/items/123be275d5c12e7c49f6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .