나는 내용을 분석하여 POP3 계정 오픈/업데이트 티켓에서 메시지를 다운로드 크론 스크립트에 대해 생각했다. 이 이 가능한가요?
가능할 수 있습니다. 물론 POP3 계정의 데이터가 있으면 Trac API를 사용하여 적절히 반복하여 티켓을 만들고 업데이트 할 수 있습니다.
데이터 검색 단계의 경우 IAdminCommandProvider
인터페이스를 구현하는 Component
으로 새 플러그인을 만들 수 있습니다. 실제로 데이터를 검색하고 구문 분석하는 방법은 구현 세부 사항을 결정하는 것이지만 email/poplib 모듈을 사용하고 email2trac의 구문 분석 구조 중 일부를 따를 수 있습니다. 일부 검증되지 않은 상용구 당신이 시작하는 경우
...
from trac.admin import IAdminCommandProvider
from trac.core import Component, implements
from trac.ticket import Ticket
def EmailToTicket(Component):
implements(IAdminCommandProvider)
def get_admin_commands(self):
yield ('emailtoticket retrieve',
'Retrieve emails from a mail server.'
None, self._do_retrieve_email)
def _do_retrieve_email(self):
# TODO - log into the mail server, then parse data.
# It would be nice to have a tuple of dictionaries,
# with keys like id, summary, description etc
# iterate over the data and create/update tickets
for email in emails:
if 'id' in email: # assuming email is a dictionary
self._update_ticket(email)
else:
self._create_ticket(email)
def _update_ticket(self, data):
ticket = Ticket(self.env, data[id])
for field, value in data.iteritems():
ticket[field] = value
ticket.save_changes(author, comment, when)
def _create_ticket(self, data):
ticket = Ticket(self.env)
for field, value in data.iteritems():
ticket[field] = value
ticket.insert()
그런 다음 크론 탭 (주파수가 당신에게 달려 - 아래의 예는 매 분마다 실행) TracAdmin를 통해이 명령을 실행 할 수
* * * * * trac-admin /path/to/projenv emailtoticket retrieve
플러그인 개발에 대해 자세히 알아 보려면 this Trac wiki page을 읽어야합니다.
trac-users 메일 링리스트에서 최근이 내용에 대한 유용한 토론 : [here] (https://groups.google.com/d/msg/trac-users/Ujsf2WuG7Yc/l2Df0i-oj7AJ) 및 [여기] (https://groups.google.com/d/msg/trac-users/l9AQ57aCvgY/Fv5LmvtWoXoJ). – RjOllos