RapidSMS 开发人员指南/个人仓库
正如在代码结构中提到的,我们的主要工作场所将是一个新的文件夹。
首先创建这个文件夹
cd ~ mkdir sms
此文件夹需要遵循一些指导。它将是您的 RapidSMS 主目录。从现在开始,除非另有说明,否则我们始终认为是在此文件夹内,它将被称为您的存储库。
local.ini 文件是主要的 rapidsms 配置文件。它包含 rapidsms 特定的配置、应用程序特定的配置和后端特定的配置。它实际上覆盖了来自核心默认的rapidsms.ini 文件。
Django 配置不可直接访问,因为它存储在 rapidsms 核心内。
创建一个名为local.ini 的文件,并添加以下内容
[rapidsms] apps=logger,admin,webapp,ajax,httptester,echo backends=http [log] level=debug file=/tmp/rapidsms.log [database] engine=sqlite3 name=rapidsms.db [http] host=localhost port=1338 [httptester] host=localhost port=1338
必需的[部分] 是rapidsms 和database。apps= 是您要使用的所有 rapidsms 应用程序的逗号分隔列表。上面的列表将允许您通过 Web 界面测试系统。backends= 是要启动的后端的逗号分隔列表。后端是一个处理传入/传出消息的模块。最流行的是gsm 后端(也称为pygsm),它通过物理连接的 GSM 调制解调器发送/接收消息。在上面的示例中,我们使用了http 后端,它允许您模拟调制解调器的行为以测试传入/传出消息。
在 RapidSMS 中,您可以通过为其创建一个部分,从local.ini 文件中配置应用程序(和后端)。
[http] 部分配置http 后端。[httptester] 部分配置 httptester 应用程序。使用相同的主机和端口为httptester 和http,以便 HTTP 测试程序应用程序正常工作。
RapidSMS 预计内部有一个apps 文件夹。
mkdir apps
由于您的存储库都包含在PYTHON_PATH 中,因此它们被视为 Python 模块。因此,您需要在两者内创建一个空的__init__.py 文件,以将其标记为模块。
touch __init__.py touch apps/__init__.py''
每个 Django 应用程序都包含一个manage.py 脚本,它提供了对 Django 相关操作的访问权限:创建数据库等。RapidSMS 需要修改此脚本的版本以启动路由器。
创建一个名为rapidsms 的文件,内容如下
#!/usr/bin/env python # vim: ai ts=4 sts=4 et sw=4 encoding=utf-8 import sys, os from os import path # figure out where all the extra libs (rapidsms and contribs) are libs=[os.path.abspath('lib'),os.path.abspath('apps')] # main 'rapidsms/lib' try: for f in os.listdir('contrib'): pkg = path.join('contrib',f) if path.isdir(pkg) and \ 'lib' in os.listdir(pkg): libs.append(path.abspath(path.join(pkg,'lib'))) except: # could be several reasons: # no 'contrib' dir, 'contrib' not a dir # 'contrib' not readable, in any case # ignore and leave 'libs' as just # 'rapidsms/lib' pass # add extra libs to the python sys path sys.path.extend(libs) # import manager now that the path is correct from rapidsms import manager if __name__ == "__main__": manager.start(sys.argv)
确保它具有执行权限。
chmod +x ./rapidsms
在local.ini 文件中,我们请求启动几个应用程序。RapidSMS 预计这些应用程序位于您的apps/ 子文件夹中,就像任何常规应用程序一样。
按如下方式创建符号链接以将它们包含在您的存储库中
cd apps ln –s /home/user_name/sources/rapidsms/apps/admin ln –s /home/user_name/sources/rapidsms/apps/ajax ln –s /home/user_name/sources/rapidsms/apps/locations ln –s /home/user_name/sources/rapidsms/apps/logger ln –s /home/user_name/sources/rapidsms/apps/patterns ln –s /home/user_name/sources/rapidsms/apps/reporters ln –s /home/user_name/sources/rapidsms/apps/webapp
RapidSMS 与 Django 一样,是数据库驱动的。
在local.ini 文件中,您指定了数据库连接信息。在那里,就像使用 Django 一样,您可以选择不同的引擎(MySQL、SQLite 等)。
配置完成后,使用rapidsms 脚本的syncdb 命令
./rapidsms syncdb
此命令将根据 Django/Models 约定,创建local.ini 中命名的所有应用程序的数据库模式。如果此命令因解析器错误而失败,请修改您的 local.ini 文件,以便您删除在没有括号的情况下开始的行中的前导空格/制表符。