%global _empty_manifest_terminate_build 0 Name: python-SMSGateway Version: 0.7.1.5 Release: 1 Summary: Forwards messages via SMS from and to instant messengers License: Creative Commons Attribution-Noncommercial-Share Alike license URL: https://github.com/Craeckie/SMSGateway Source0: https://mirrors.nju.edu.cn/pypi/web/packages/bb/f9/f5564616d11f607e21cf88cf998d891de919d25ad9eb636f6c898bde22af/SMSGateway-0.7.1.5.tar.gz BuildArch: noarch Requires: python3-appdirs Requires: python3-arrow Requires: python3-asyncio Requires: python3-bs4 Requires: python3-cryptography Requires: python3-fbchat Requires: python3-imapclient Requires: python3-matrix-nio[e2e] Requires: python3-slackclient Requires: python3-telethon %description # SMSGateway This project is in Beta stage, so documentation is quite limited. Pull requests welcome! The following instructions apply to a Raspberry PI running Ubuntu, but it should work similarly on other Linux distributions and platforms. Some commands might require to be invoked with `sudo`. See [SMSGateway-Android](https://github.com/Craeckie/SMSGateway-Android) for an Android client. ## SMS Tools Install [smstools](smstools3.kekekasvi.com): ```bash apt install smstools ``` Edit `/etc/smsd.conf`, see `Confiuration/smsd.conf` for an example configuration. It uses to user `smsd` for the sms spooler at `/var/spool/sm`s. ## Configuration ```bash pip install smsgateway ``` Copy `smsgateway/config.example.py` to `/home/smsd/.config/smsgateway/config.py` and adapt it. ## Handle incoming SMS To handling incoming sms `Scripts/smshandler` needs to be copied to the `eventhandler` specified in `smsd.conf`. In the example it points to `/usr/local/bin/smshandler`. Make sure to make it executable (`chmod +x`). ### Logging `mkdir /var/log/smsgateway/ && chown -R smsd:smsd /var/log/smsgateway/` ### Permission to control systemctl, shutdown, etc. Copy `Configuration/010_smsd-nopasswd` to `/etc/sudoers.d/` Make sure that the file is correct, otherwise you might **lock yourself out**! If you're unsure, run `visudo -f /etc/sudoers.d/010_smsd-nopasswd`, enter the contents in the editor and save it. ## Messengers ### Telegram Uses [Telethon](https://github.com/LonamiWebs/Telethon). Run `python3 -m smsgateway.sources.telegram` to authorize for receiving messages, similarly run `python3 -m smsgateway.sources.commands.send_telegram` to authorize for sending messages. ### Facebook Uses [fbchat](https://github.com/carpedm20/fbchat), see [documentation](https://fbchat.readthedocs.io/) ```bash apt install python3-dev libxml2-dev libxslt-dev pip install fbchat ``` ### Signal Uses [signal-cli](https://github.com/AsamK/signal-cli) ```bash SGVER="0.6.2" apt install openjdk-8-jre-headless wget "https://github.com/AsamK/signal-cli/releases/download/v$SGVER/signal-cli-$SGVER.tar.gz" tar xvf "signal-cli-$SGVER.tar.gz" -C /opt ln -svf "/opt/signal-cli-${SGVER}/bin/signal-cli" /usr/local/bin/ signal-cli link # You can remove old versions at /opt/signal-cli- ``` ### Slack Go to https://api.slack.com/custom-integrations/legacy-tokens Sign in, create a token and store it in your configuration at `SL_TOKEN` ### WhatsApp Uses [Yowsup](https://github.com/tgalal/yowsup) ```bash pip install yowsup # TODO ``` ## Tweaks and optimizations ### Ramdisk for SMS When lots of SMS are processed it can wear out SD cards (I destroyed one after several months). A workaround is to store the SMS messages in a ramdisk. The following is an entry in the fstab: ``` tmpfs /var/spool/sms tmpfs nodev,nosuid,size=64M 0 0 ``` To mount it simply call `mount /var/spool/sms`. The downside is, that when the device restarts/crashed, currently processed SMS messages are lost. To work around that there are two scripts for saving&restoring the messages in `Scripts/` and a oneshot-service, which can be enabled to restore the message when the device is starting. %package -n python3-SMSGateway Summary: Forwards messages via SMS from and to instant messengers Provides: python-SMSGateway BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-SMSGateway # SMSGateway This project is in Beta stage, so documentation is quite limited. Pull requests welcome! The following instructions apply to a Raspberry PI running Ubuntu, but it should work similarly on other Linux distributions and platforms. Some commands might require to be invoked with `sudo`. See [SMSGateway-Android](https://github.com/Craeckie/SMSGateway-Android) for an Android client. ## SMS Tools Install [smstools](smstools3.kekekasvi.com): ```bash apt install smstools ``` Edit `/etc/smsd.conf`, see `Confiuration/smsd.conf` for an example configuration. It uses to user `smsd` for the sms spooler at `/var/spool/sm`s. ## Configuration ```bash pip install smsgateway ``` Copy `smsgateway/config.example.py` to `/home/smsd/.config/smsgateway/config.py` and adapt it. ## Handle incoming SMS To handling incoming sms `Scripts/smshandler` needs to be copied to the `eventhandler` specified in `smsd.conf`. In the example it points to `/usr/local/bin/smshandler`. Make sure to make it executable (`chmod +x`). ### Logging `mkdir /var/log/smsgateway/ && chown -R smsd:smsd /var/log/smsgateway/` ### Permission to control systemctl, shutdown, etc. Copy `Configuration/010_smsd-nopasswd` to `/etc/sudoers.d/` Make sure that the file is correct, otherwise you might **lock yourself out**! If you're unsure, run `visudo -f /etc/sudoers.d/010_smsd-nopasswd`, enter the contents in the editor and save it. ## Messengers ### Telegram Uses [Telethon](https://github.com/LonamiWebs/Telethon). Run `python3 -m smsgateway.sources.telegram` to authorize for receiving messages, similarly run `python3 -m smsgateway.sources.commands.send_telegram` to authorize for sending messages. ### Facebook Uses [fbchat](https://github.com/carpedm20/fbchat), see [documentation](https://fbchat.readthedocs.io/) ```bash apt install python3-dev libxml2-dev libxslt-dev pip install fbchat ``` ### Signal Uses [signal-cli](https://github.com/AsamK/signal-cli) ```bash SGVER="0.6.2" apt install openjdk-8-jre-headless wget "https://github.com/AsamK/signal-cli/releases/download/v$SGVER/signal-cli-$SGVER.tar.gz" tar xvf "signal-cli-$SGVER.tar.gz" -C /opt ln -svf "/opt/signal-cli-${SGVER}/bin/signal-cli" /usr/local/bin/ signal-cli link # You can remove old versions at /opt/signal-cli- ``` ### Slack Go to https://api.slack.com/custom-integrations/legacy-tokens Sign in, create a token and store it in your configuration at `SL_TOKEN` ### WhatsApp Uses [Yowsup](https://github.com/tgalal/yowsup) ```bash pip install yowsup # TODO ``` ## Tweaks and optimizations ### Ramdisk for SMS When lots of SMS are processed it can wear out SD cards (I destroyed one after several months). A workaround is to store the SMS messages in a ramdisk. The following is an entry in the fstab: ``` tmpfs /var/spool/sms tmpfs nodev,nosuid,size=64M 0 0 ``` To mount it simply call `mount /var/spool/sms`. The downside is, that when the device restarts/crashed, currently processed SMS messages are lost. To work around that there are two scripts for saving&restoring the messages in `Scripts/` and a oneshot-service, which can be enabled to restore the message when the device is starting. %package help Summary: Development documents and examples for SMSGateway Provides: python3-SMSGateway-doc %description help # SMSGateway This project is in Beta stage, so documentation is quite limited. Pull requests welcome! The following instructions apply to a Raspberry PI running Ubuntu, but it should work similarly on other Linux distributions and platforms. Some commands might require to be invoked with `sudo`. See [SMSGateway-Android](https://github.com/Craeckie/SMSGateway-Android) for an Android client. ## SMS Tools Install [smstools](smstools3.kekekasvi.com): ```bash apt install smstools ``` Edit `/etc/smsd.conf`, see `Confiuration/smsd.conf` for an example configuration. It uses to user `smsd` for the sms spooler at `/var/spool/sm`s. ## Configuration ```bash pip install smsgateway ``` Copy `smsgateway/config.example.py` to `/home/smsd/.config/smsgateway/config.py` and adapt it. ## Handle incoming SMS To handling incoming sms `Scripts/smshandler` needs to be copied to the `eventhandler` specified in `smsd.conf`. In the example it points to `/usr/local/bin/smshandler`. Make sure to make it executable (`chmod +x`). ### Logging `mkdir /var/log/smsgateway/ && chown -R smsd:smsd /var/log/smsgateway/` ### Permission to control systemctl, shutdown, etc. Copy `Configuration/010_smsd-nopasswd` to `/etc/sudoers.d/` Make sure that the file is correct, otherwise you might **lock yourself out**! If you're unsure, run `visudo -f /etc/sudoers.d/010_smsd-nopasswd`, enter the contents in the editor and save it. ## Messengers ### Telegram Uses [Telethon](https://github.com/LonamiWebs/Telethon). Run `python3 -m smsgateway.sources.telegram` to authorize for receiving messages, similarly run `python3 -m smsgateway.sources.commands.send_telegram` to authorize for sending messages. ### Facebook Uses [fbchat](https://github.com/carpedm20/fbchat), see [documentation](https://fbchat.readthedocs.io/) ```bash apt install python3-dev libxml2-dev libxslt-dev pip install fbchat ``` ### Signal Uses [signal-cli](https://github.com/AsamK/signal-cli) ```bash SGVER="0.6.2" apt install openjdk-8-jre-headless wget "https://github.com/AsamK/signal-cli/releases/download/v$SGVER/signal-cli-$SGVER.tar.gz" tar xvf "signal-cli-$SGVER.tar.gz" -C /opt ln -svf "/opt/signal-cli-${SGVER}/bin/signal-cli" /usr/local/bin/ signal-cli link # You can remove old versions at /opt/signal-cli- ``` ### Slack Go to https://api.slack.com/custom-integrations/legacy-tokens Sign in, create a token and store it in your configuration at `SL_TOKEN` ### WhatsApp Uses [Yowsup](https://github.com/tgalal/yowsup) ```bash pip install yowsup # TODO ``` ## Tweaks and optimizations ### Ramdisk for SMS When lots of SMS are processed it can wear out SD cards (I destroyed one after several months). A workaround is to store the SMS messages in a ramdisk. The following is an entry in the fstab: ``` tmpfs /var/spool/sms tmpfs nodev,nosuid,size=64M 0 0 ``` To mount it simply call `mount /var/spool/sms`. The downside is, that when the device restarts/crashed, currently processed SMS messages are lost. To work around that there are two scripts for saving&restoring the messages in `Scripts/` and a oneshot-service, which can be enabled to restore the message when the device is starting. %prep %autosetup -n SMSGateway-0.7.1.5 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-SMSGateway -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.7.1.5-1 - Package Spec generated