This program allows you to send SMS via a USB modem, the number of subscribers and characters in the SMS text does not matter. The program supports most modems and gsm modules (full list: en.wammu.eu/phones/). Tested on iRZ TU32 and Huawei E352 modems.
Данная программа позволяет производить рассылку СМС через USB-модем, количество абонентов и символов в тексте СМС не имеет значения. Программа поддерживает большинство модемов и gsm-модулей (полный список: ru.wammu.eu/phones/). Протестировано на модемах iRZ TU32 и Huawei Е352.
- Реализована функция проверки орфографии (опечаток) в тексте (кнопка АВС).
- Изменен раздел меню Журнал: данные представлены в виде таблицы (использован kivymd).
- Использованы иконки в меню Список рассылки.
- Добавлен счетчик отправленных сообщений.
Скачать программу можно скачать с репозитория telnex/SMSKivy/releases (Windows x64). Распакуйте архив и запустите файл sms.exe.
Откройте раздел Настройки и укажите COM-порт устройства. В данном разделе отображаются доступные для подключения устройства. Так же список доступных устройств можно получить штатными средствами ОС. Для Windows: через штатный диспетчер задач необходимо выяснить номер com-порта вашего устройства, указать данный порт в настройка программы (только цифра). Для Ubuntu/Mac OS: через команду ls /dev/
выяснить номер com-порта. Возможно, необходимо использовать дополнительное оборудование (переходник com->USB).
Поместите исходный код программы в папку test/src/
, в папку test/
добавьте файл single.spec и выполните команду python -m PyInstaller single.spec
.
После сборки .exe файла скопируйте в test/dist/
папки data, kvlang и style, а также файл gammurc
.
Важно! Протестированно на версии pyinstaller 5.6.2, на версии pyinstaller 5.9.0 возникает ошибка:
Traceback (most recent call last):
File "logging\__init__.py", line 1103, in emit
AttributeError: 'NoneType' object has no attribute 'write'
# -*- mode: python -*-
import sys
from kivy_deps import sdl2, glew
from kivymd import hooks_path as kivymd_hooks_path
app_name = 'SMS'
sys.path += ["src\\"]
a = Analysis(['src\\main.py'],
pathex=['C:\\Users\\Admin\\Desktop\\test'],
binaries=None,
datas=None,
hiddenimports=[
'webbrowser',
'__init__',
'data.__init__',
'data.screens.__init__',
'data.screens.dbmanager',
'data.screens.db_kv.__init__',
'data.screens.db_kv.backupsd',
],
hookspath=[kivymd_hooks_path],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False)
# exclusion list
from os.path import join
from fnmatch import fnmatch
exclusion_patterns = (
join("kivy_install", "data", "images", "testpattern.png"),
join("kivy_install", "data", "images", "image-loading.gif"),
join("kivy_install", "data", "keyboards*"),
join("kivy_install", "data", "settings_kivy.json"),
join("kivy_install", "data", "logo*"),
join("kivy_install", "data", "fonts", "DejaVuSans*"),
join("sdl2-config"),
# Filter app directory
join(".idea*"),
join("gammurc")
)
def can_exclude(fn):
for pat in exclusion_patterns:
if fnmatch(fn, pat):
return True
a.datas = [x for x in a.datas if not can_exclude(x[0])]
a.binaries = [x for x in a.binaries if not can_exclude(x[0])]
# Filter app directory
appfolder = [x for x in Tree('src\\', excludes=['*.py','*.pyc']) if not can_exclude(x[0])]
pyz = PYZ(a.pure, a.zipped_data)
exe = EXE(pyz,
a.scripts,
appfolder,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins )],
name=app_name,
debug=False,
strip=False,
upx=True,
console=False)
Данное приложение не имеет встроенного драйвера для USB-модема, в качестве решения необходимо установить стандартное приложение для модема. Например, huawei.mobzon.ru/huawei-modem-nano.
Инициализация модема происходит при запуске программы и при отправке СМС. В случае некорректной работы, необходимо перезагрузить приложение.
Необходимо скопировать «ru_RU.aff» и «ru_RU.dic» с github.com/LibreOffice в C:\...\site-packages\enchant\data\mingw64\share\enchant\hunspell
.
Используйте форум GitHub,что сообщить о найденных багах в программе, ссылка на топик.