
cree.py용 플러그인
cree.py용 플러그인
cree.py의 아키텍처는 지리정보(geolocation)를 위한 여러 사용자 정의 소스를 허용합니다. 이러한 소스는 플러그인으로 정의되며, 설치 디렉터리 아래의 plugins 폴더에 복사하여 creepy에 설치할 수 있습니다.
새 플러그인을 다른 사용자와 공유하려면 풀 리퀘스트를 작성해 주세요. 제가 확인 후 저장소에 병합하겠습니다.
creepy용 플러그인은 최소 3개의 파일이 필요합니다:
모듈 아키텍처는 yapsy(http://yapsy.sourceforge.net)의 도움으로 구축되었습니다.
plugin_name.yapsy-plugin 파일에 다음 정보를 포함해 주세요.
[Core]
Name = Plugin Name
Module = plugin_name
[Documentation]
Author =
Version =
Website =
Description =
플러그인의 로직을 포함하는 파이썬 파일입니다. 이 파일은 InputPlugin 클래스를 확장하고 최소한 여러 메서드를 구현해야 하므로, 아래와 같이 정의해야 합니다(인라인 주석 참조):
from models.InputPlugin import InputPlugin
class PluginName(InputPlugin):
name="plugin_name"
'''
플러그인 구성이 마법사를 호출해야 하는 경우
(예: oAuth 인증) 이 값을 true로 설정해야 합니다.
'''
hasWizard=True
def searchForTargets(self, search_term):
'''
Parameters
----------
search_term : str
사용자가 New Project 마법사에서 입력한 검색어입니다. 메일, ID,
사용자 이름, 전체 이름일 수 있으며, 필요에 따라 서로 다른 유형을
구분하는 것은 플러그인의 책임입니다.
사용자로부터 문자열 매개변수를 받아 해당 서비스/소스에서 검색을 수행하여
프로세스에 포함할 가능한 대상을 식별합니다.
식별된 각 대상에 대해 하나씩 사전 목록을 반환하거나 결과가 없으면 빈 목록을 반환합니다.
사전에는 다음 키가 포함되어야 합니다:
target = {'pluginName':'Plugin Name',
'targetUserid' : 'The userid of the target in the service/source',
'targetUsername' : 'The username of the target in the service/source',
'targetPicture' : 'the filename of the profile picture of the target ( profile_pic_targetUserid )',
'targetFullname' : 'The full name of the target'}
'''
your_code_here()
def runConfigWizard(self):
'''
플러그인 구성에 마법사가 필요한 경우 여기에 만드세요. 반환하기 전에 구성
값을 플러그인의 구성 파일에 저장해야 합니다.
플러그인 구성 파일에 대한 접근은 InputPlugin에서 상속된
readConfiguration(category) 메서드를 통해 제공됩니다. 이 메서드는 튜플
config, options를 반환합니다. 여기서
-- config는 구성 저장에 사용할 수 있는 ConfigObj 파일로, write() 메서드를
호출하여 저장할 수 있습니다.
-- options는 구성 카테고리 옵션을 포함하는 사전입니다.
'''
def isConfigured(self):
'''
튜플을 반환합니다. 첫 번째 요소는 플러그인이 구성되었는지 여부에 따라 True 또는 False입니다. 두 번째
요소에는 사용자를 위한 선택적 메시지가 포함됩니다.
'''
def returnLocations(self, target, search_params):
'''
Parameters
----------
target : dict
search_params : dict
지정된 검색 매개변수를 사용하여 지정된 대상에 대한 위치 사전 목록(또는 위치를 찾지 못한 경우 빈 목록)을 반환합니다.
target은 searchForTargets에 정의된 정보가 포함된 사전이며, search_params는
구성 파일에서 사용 가능한 것으로 정의했을 검색 매개변수가 포함된 사전입니다
(아래 plugin_name.conf 참조).
위치 사전에는 다음 키가 포함되어야 합니다:
loc = {'plugin' : 'twitter'
'context' : 'Context of the location"
'infowindow' : "HTML with information in the location to be shown in the infoWindow on the map"
'date' : 'a datetime.datetime object with information on when the gelocation was created'
'lat' : 'latitude of the location'
'lon' : 'longitude of the location'
'shortName' : 'short name describing the location, empty string if not available'}
'''
플러그인에 파이썬과 함께 배포되지 않는 외부 모듈이 필요한 경우, 사용자에게 이를 명시적으로 알려야 하며, 가급적 각 플랫폼에서 종속성을 설치하는 방법에 대한 지침도 함께 제공해야 합니다.
이 파일에는 모든 구성 옵션이 포함되며 다음 섹션이 있어야 합니다(일부 또는 전부가 비어 있을 수 있음).
[string_options]
key1 = value
[boolean_options]
key2 = True
key3 = False
[search_string_options]
key4 = some value
[search_boolean_options]
key5 = True
string_options 및 boolean_options는 플러그인 구성 대화상자에서 구성 옵션으로 표시됩니다.
search_string_options 및 search_boolean_options는 새 프로젝트 마법사에서 검색 옵션으로 사용할 수 있습니다.
GUI에서 값을 숨겨야 하는 경우(예: 비밀번호, 액세스 토큰 등), 키 앞에 hidden_을 붙이면
cree.py가 처리합니다.
구성 옵션이 GUI에서 더 사용자 친화적인 이름을 갖도록 하려면 여기에 해당 레이블을 제공할 수 있습니다.
예를 들어, 위의 conf 파일을 참조하면 plugin_name.labels 파일은 다음과 같을 수 있습니다.
[labels]
key1 = Label For Key 1
key2 = Label For Key 2
key3 = Label For Key 3
key4 = Label For Key 4
key5 = Label For Key 5
키에 대한 레이블을 지정하지 않으면 대신 키가 GUI에 표시됩니다.
위의 모든 파일을 plugin_name이라는 폴더에 모으고 해당 폴더를 설치된 애플리케이션의 plugins 디렉터리에 복사하세요. 그게 전부입니다!