Giter Club home page Giter Club logo

smskivy's Introduction

📢 СМС-рассылка через GSM-модем

Версия: 1.0.2

Python 3.10 Kivy 2.1.0 Kivymd 1.1.1 Gammu 3.2.4 Pyserial 3.5 Enchant 0.0.1 Pyperclip 1.8.2

Иллюстрация к проекту

Описание программы

Данная программа позволяет производить рассылку СМС через USB-модем, количество абонентов и символов в тексте СМС не имеет значения. Программа поддерживает большинство модемов и gsm-модулей (полный список: ru.wammu.eu/phones/). Протестировано на модемах iRZ TU32 и Huawei Е352.

Версии

V1.0.1 - 11.2022

  • Реализована функция проверки орфографии (опечаток) в тексте (кнопка АВС).

V1.0.2 - 04.2023

  • Изменен раздел меню Журнал: данные представлены в виде таблицы (использован kivymd).
  • Использованы иконки в меню Список рассылки.
  • Добавлен счетчик отправленных сообщений.

Установка под ОС

Скачать программу можно скачать с репозитория telnex/SMSKivy/releases (Windows x64). Распакуйте архив и запустите файл sms.exe.

Настройка

Откройте раздел Настройки и укажите COM-порт устройства. В данном разделе отображаются доступные для подключения устройства. Так же список доступных устройств можно получить штатными средствами ОС. Для Windows: через штатный диспетчер задач необходимо выяснить номер com-порта вашего устройства, указать данный порт в настройка программы (только цифра). Для Ubuntu/Mac OS: через команду ls /dev/ выяснить номер com-порта. Возможно, необходимо использовать дополнительное оборудование (переходник com->USB).

Сборка программы под Windows

Поместите исходный код программы в папку 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'

Файл single.spec

# -*- 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)

FAQ

Драйвер

Данное приложение не имеет встроенного драйвера для 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,что сообщить о найденных багах в программе, ссылка на топик.

smskivy's People

Contributors

telnex avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.