•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
이 문서는 분류가 되어 있지 않습니다. 분류:분류에서 적절한 분류를 찾아 문서를 분류해주세요!
이문서엔 더시드엔진과 호환되는 api로 1부터 N까지의 자연수 문서를 만드는 파이썬 스크립트가있다. 허가없이 실행하면 잡혀갈것이다. 권한 있어야해서 사실 괜찮다.

import requests

class theseedAPI:
    def __init__(self, base_url: str, api_key: str):
        self.base_url = base_url
        self.header = {'Authorization': 'Bearer ' + api_key}

        if self.base_url[-1] != '/':
            self.base_url += '/'

    def get_wiki_content(self, name: str) -> str:
        req1 = requests.get(self.base_url + 'edit/' + name, headers=self.header, verify=False)
        return req1.text

    def edit_wiki_content(self, name: str, content: str, summary: str, prev_req: dict) -> str:
        payload2 = {'log': summary}
        payload2['text'] = content
        payload2['token'] = prev_req['token']
        req2 = requests.post(self.base_url + 'edit/' + name, headers=self.header, json=payload2, verify=False)
        return req2.text

if __name__ == '__main__':
    import json, sys

    if len(sys.argv) != 2:
        print('xxx')
        exit(1)

    FORCE = False
    N = int(sys.argv[1])

    ls = [True] * (N + 1)
    ls[0] = ls[1] = False
    for i in range(2, N + 1):
        if ls[i]:
            for j in range(i * 2, N + 1, i):
                ls[j] = False

    # dksadljdsjdlkajdieoeqweuiqie
    def gen_natural_doc(n: int) -> str:
        res = "[[분류:숫자]]\n"
        res += "[목차]\n\n"
        res += "== [[자연수]] ==\n"
        res += "%d보다 크고 %d보다 작은 자연수.\n" % (n - 1, n + 1)

        if ls[n]:
            res += "소수이다."

        elif n == 1:
            res += "합성수도, 소수도 아니다."

        else:
            res += "합성수이다."

        res += "\n"
        return res

    api = theseedAPI('https://theseed.io/api/', 'api_key')

    for i in range(1, N + 1):
        doc_name = str(i)
        lookup = api.get_wiki_content(doc_name)
        lookup_json = json.loads(lookup)

        # create if not exists.. or overwrite forcibly
        if not lookup_json['exists'] or FORCE:
            response = api.edit_wiki_content(doc_name, gen_natural_doc(i), f"document {doc_name}", lookup_json)
            res_json = json.loads(response)
            print(f"Document {i}: {res_json['status']}")


로컬 호스팅한 더트리엔진으로 실행했는데 조나느리다. 각각의 문서는 간섭하지않으므로 병렬처리를해야겟다