2013-02-07 7 views
1

mediaWiki 기반 사이트를 시작하고 싶지만 수동으로 범주 및 하위 범주를 추가하는 대신 XML 파일과 봇/스크립트/알고리즘/등을 제공하는 자동화 된 방식으로 추가하고 싶습니다. 목록을 작성하고 카테고리와 하위 범주를 페이지와 함께 자동으로 작성합니다. 페이지가 아직 없지만 사용자가 페이지를 정렬 할 수 있도록 도와주는 일련의 깨끗한 세트로 시작하고 싶습니다.수동으로 mediaWiki에서 계층 적 카테고리를 만드는 대신 자동화 된 방법이 있습니까?

나는 pywikipediabot을 찾았지만 내 용도로 사용하는 방법을 알아 내지 못합니다. 기존 페이지의 카테고리에서만 작동하는 것으로 보입니다. 새로운 카테고리의 계층 구조를 만드는 데 pywikipediabot을 사용 하시겠습니까? 그렇다면 어떻게됩니까? xml 파일을 템플릿으로 사용할 수 있습니까?

+1

사용하려고 시도한 코드를 포함시킬 수 있습니까? – svick

+0

연결하기 위해 pywikipediabot을 얻지 못했지만 관련없는 메커니즘을 통해 초기 문제에 대한 적절한 해결책을 발견했습니다. 아래를 참조하십시오. – solimanelefant

답변

2

카테고리를 일괄 적으로 작성하는 문제에 대한 해결책을 찾았지만 더 좋은 해결책을 알고 있다면 질문을 닫지 않은 것으로 표시하지 않습니다.

MediaWiki에는 가져 오기 기능이 있습니다. 귀하의 관리자 계정으로 특정 구조를 따라야하는 XML 파일을 가져올 선택이 당신을 수 있습니다

http://yourMediaWiki/index.php/Special:Import 

로 이동 : 이름 "테스트 카테고리"와 범주의 here

를 확인하고 텍스트 "카테고리 테스트",이 같은 '페이지'요소를 만들 수 있습니다

<page> 
<title>Category:Test Category</title> <!-- Name of the category, don't forget to prefix with 'Categroy:' --> 
<ns>14</ns> <!-- 14 is the namespace of categories --> 
<id>n</id> <!-- identifier for category --> 
<revision> 
    <id>16</id> <!-- number of revision --> 
    <timestamp>2013-02-10T22:07:46Z</timestamp> <!-- Creation date & time --> 
    <contributor> 
    <username>admin</username> <!-- Name of user who created the category --> 
    <id>1</id> <!-- ID of the user --> 
    </contributor> 
    <comment></comment> <!-- Comment about the category. Can be left blank --> 
    <sha1></sha1> <!-- sha1 hash can be left blank --> 
    <text xml:space="preserve" bytes="1">Category Testing</text> <!-- It seems it doesn't matter what you write into the bytes attribute. --> 
</revision> 
</page> 

당신이 범주의 계층 그냥 텍스트 요소로 상위 카테고리 태그를 추가 생성합니다. 범주는 다음 텍스트 요소는 다음과 같이한다 '상위 카테고리'카테고리의 일부가되어야 말 : 당신이 pywikibot를 가동 얻을 수 있다면

<text xml:space="preserve" bytes="1">Category Testing [[Category:Parent Category]]</text> 
0

는, 당신이 그 범주 클래스를 사용할 수 있습니다. Main entry point on Github search for class Category(Page). 미디어 위키의

카테고리는 기본적으로 표준 페이지하지만 네임 스페이스 (14)의 범주에 모든 페이지 포함하려면 - 당신은 그래서 당신이 뭔가를 할 수 [[Category:<The-Category>]]

을 포함하는 페이지의 wikitext에서 - 카테고리는 페이지를 포함하여 이

>>> import pywikibot as pwb 
#Your site will be different than this 
>>> testwiki = pwb.Site('en','test') 
>>> catA = pwb.Category(testwiki, 'testCatA') 
>>> catA.namespace() 
14 
>>> catA._text = u'[[Category:testCatB]]' 
>>> catA.save() 
Page [[test:Category:TestCatA]] saved 

처럼 이제 Category:TestCatB의 하위 범주 인 페이지 Category:TestCatA 있습니다.