%global _empty_manifest_terminate_build 0
Name:		python-djallin2
Version:	0.8.2
Release:	1
Summary:	Twitch noisemaker
License:	MIT License
URL:		https://github.com/vilhelmen/djallin2
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/58/b3/d40ac39f6eb808f78406745a2d616ca6bf6a2e6b24b606b3eafda865905f/djallin2-0.8.2.tar.gz
BuildArch:	noarch

Requires:	python3-toml
Requires:	python3-tomlkit
Requires:	python3-requests
Requires:	python3-dateutil
Requires:	python3-websockets
Requires:	python3-packaging
Requires:	python3-pyobjc
Requires:	python3-pywin32

%description
# DJALLIN2

A mildly configurable twitch noisemaker capable of responding to chat and point redemptions.

Available through pip (`djallin2`) or as a [standalone executable](https://github.com/vilhelmen/djallin2/releases) for macOS and Windows.

Note for Windows users, your antivirus will probably think it's a trojan.
It's not, but it kinda looks like one to your antivirus.
If you get the option to report a false positive, please do so.

## Quickstart

Want `!sound` to just work?
* Download the latest build from the [releases tab](https://github.com/vilhelmen/djallin2/releases)
* Download the [quick config file](./quick_config.txt), rename it to `config.txt`
* Place your sounds in a folder called sounds, next to the app and config
* Run it, your browser will open to handle the initial Twitch connection
    * This will happen every ~3 months as necessary

## Configuration

`config.txt` holds your token and configures chat and point responders.

Take a look at the [example configuration](./example_config.txt) for examples, and a detailed explanation for all settings.

The following block defines a basic chat listener:

```toml
[chat.sound]
    badges = ['moderator', 'broadcaster', 'vip']
    target = './sounds/'
    command = '!sound '
```

Mods, VIPs, and the broadcaster can use `!sound xxx` to play `./sounds/xxx.mp3`

If badge and name filters are not supplied, anyone can use the command.
The `random` setting enables random playback.
A value of `2` selects a random file from the directory.
```toml
[chat.wisdom]
    target = './wisdom/'
    command = '!wisdom'
    random = 2
```

Points rewards are similarly configured.
Set the `name` to the name configured in your twitch rewards.
A `random` value of `1` enables the `random` command where a random file will be selected if a user enters `random`.
```toml
[points.sound]
    name = 'play a sound'
    target = './sounds/'
    random = 1
```

Alternatively, you can duplicate configurations using links.
Setting applied in the block with a `link` statement override settings in the linked responder. 
```toml
[points.sound]
    link = 'chat.sound'
    random = 1
```

`command_mode` can be used to define different match modes for the `command`.
`contains` allows you to play a single file or randomly select from a directory when a message contains the command phrase.
Chat listeners are checked in alphabetical order and when one plays a sound, checks stop.
```toml
[chat.z_cowboy]
    command = 'cowboy'
    command_mode = 'contains'
    target = './sound/yeehaw.mp3'
```

Both point and chat blocks support custom code actions, check the [example configuration](./example_config.txt) for details.

Playback statistics can be recorded to a sqlite3 database of your choice.
Simply add `stats = true` to your configuration block.
```toml
[chat.sound]
    target = './sounds/'
    command = '!sound '
    stats = true
```

The name of the database can be changed by setting `stats_db = 'database.sqlite'` at the top of your configuration file.

# Known issues

If a red screen shows when registering your twitch token, there may be a problem with your connection.
Close the soundbot and try again.


# TODO:
1. This
1. Let exit on fire be a configurable option?
1. HTTP command receiver (lioran?)
1. custom hook code - lioran example? obs websocket?
1. Bits?
1. Does linux support audio these days?
1. https://inloop.github.io/sqlite-viewer/




%package -n python3-djallin2
Summary:	Twitch noisemaker
Provides:	python-djallin2
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-djallin2
# DJALLIN2

A mildly configurable twitch noisemaker capable of responding to chat and point redemptions.

Available through pip (`djallin2`) or as a [standalone executable](https://github.com/vilhelmen/djallin2/releases) for macOS and Windows.

Note for Windows users, your antivirus will probably think it's a trojan.
It's not, but it kinda looks like one to your antivirus.
If you get the option to report a false positive, please do so.

## Quickstart

Want `!sound` to just work?
* Download the latest build from the [releases tab](https://github.com/vilhelmen/djallin2/releases)
* Download the [quick config file](./quick_config.txt), rename it to `config.txt`
* Place your sounds in a folder called sounds, next to the app and config
* Run it, your browser will open to handle the initial Twitch connection
    * This will happen every ~3 months as necessary

## Configuration

`config.txt` holds your token and configures chat and point responders.

Take a look at the [example configuration](./example_config.txt) for examples, and a detailed explanation for all settings.

The following block defines a basic chat listener:

```toml
[chat.sound]
    badges = ['moderator', 'broadcaster', 'vip']
    target = './sounds/'
    command = '!sound '
```

Mods, VIPs, and the broadcaster can use `!sound xxx` to play `./sounds/xxx.mp3`

If badge and name filters are not supplied, anyone can use the command.
The `random` setting enables random playback.
A value of `2` selects a random file from the directory.
```toml
[chat.wisdom]
    target = './wisdom/'
    command = '!wisdom'
    random = 2
```

Points rewards are similarly configured.
Set the `name` to the name configured in your twitch rewards.
A `random` value of `1` enables the `random` command where a random file will be selected if a user enters `random`.
```toml
[points.sound]
    name = 'play a sound'
    target = './sounds/'
    random = 1
```

Alternatively, you can duplicate configurations using links.
Setting applied in the block with a `link` statement override settings in the linked responder. 
```toml
[points.sound]
    link = 'chat.sound'
    random = 1
```

`command_mode` can be used to define different match modes for the `command`.
`contains` allows you to play a single file or randomly select from a directory when a message contains the command phrase.
Chat listeners are checked in alphabetical order and when one plays a sound, checks stop.
```toml
[chat.z_cowboy]
    command = 'cowboy'
    command_mode = 'contains'
    target = './sound/yeehaw.mp3'
```

Both point and chat blocks support custom code actions, check the [example configuration](./example_config.txt) for details.

Playback statistics can be recorded to a sqlite3 database of your choice.
Simply add `stats = true` to your configuration block.
```toml
[chat.sound]
    target = './sounds/'
    command = '!sound '
    stats = true
```

The name of the database can be changed by setting `stats_db = 'database.sqlite'` at the top of your configuration file.

# Known issues

If a red screen shows when registering your twitch token, there may be a problem with your connection.
Close the soundbot and try again.


# TODO:
1. This
1. Let exit on fire be a configurable option?
1. HTTP command receiver (lioran?)
1. custom hook code - lioran example? obs websocket?
1. Bits?
1. Does linux support audio these days?
1. https://inloop.github.io/sqlite-viewer/




%package help
Summary:	Development documents and examples for djallin2
Provides:	python3-djallin2-doc
%description help
# DJALLIN2

A mildly configurable twitch noisemaker capable of responding to chat and point redemptions.

Available through pip (`djallin2`) or as a [standalone executable](https://github.com/vilhelmen/djallin2/releases) for macOS and Windows.

Note for Windows users, your antivirus will probably think it's a trojan.
It's not, but it kinda looks like one to your antivirus.
If you get the option to report a false positive, please do so.

## Quickstart

Want `!sound` to just work?
* Download the latest build from the [releases tab](https://github.com/vilhelmen/djallin2/releases)
* Download the [quick config file](./quick_config.txt), rename it to `config.txt`
* Place your sounds in a folder called sounds, next to the app and config
* Run it, your browser will open to handle the initial Twitch connection
    * This will happen every ~3 months as necessary

## Configuration

`config.txt` holds your token and configures chat and point responders.

Take a look at the [example configuration](./example_config.txt) for examples, and a detailed explanation for all settings.

The following block defines a basic chat listener:

```toml
[chat.sound]
    badges = ['moderator', 'broadcaster', 'vip']
    target = './sounds/'
    command = '!sound '
```

Mods, VIPs, and the broadcaster can use `!sound xxx` to play `./sounds/xxx.mp3`

If badge and name filters are not supplied, anyone can use the command.
The `random` setting enables random playback.
A value of `2` selects a random file from the directory.
```toml
[chat.wisdom]
    target = './wisdom/'
    command = '!wisdom'
    random = 2
```

Points rewards are similarly configured.
Set the `name` to the name configured in your twitch rewards.
A `random` value of `1` enables the `random` command where a random file will be selected if a user enters `random`.
```toml
[points.sound]
    name = 'play a sound'
    target = './sounds/'
    random = 1
```

Alternatively, you can duplicate configurations using links.
Setting applied in the block with a `link` statement override settings in the linked responder. 
```toml
[points.sound]
    link = 'chat.sound'
    random = 1
```

`command_mode` can be used to define different match modes for the `command`.
`contains` allows you to play a single file or randomly select from a directory when a message contains the command phrase.
Chat listeners are checked in alphabetical order and when one plays a sound, checks stop.
```toml
[chat.z_cowboy]
    command = 'cowboy'
    command_mode = 'contains'
    target = './sound/yeehaw.mp3'
```

Both point and chat blocks support custom code actions, check the [example configuration](./example_config.txt) for details.

Playback statistics can be recorded to a sqlite3 database of your choice.
Simply add `stats = true` to your configuration block.
```toml
[chat.sound]
    target = './sounds/'
    command = '!sound '
    stats = true
```

The name of the database can be changed by setting `stats_db = 'database.sqlite'` at the top of your configuration file.

# Known issues

If a red screen shows when registering your twitch token, there may be a problem with your connection.
Close the soundbot and try again.


# TODO:
1. This
1. Let exit on fire be a configurable option?
1. HTTP command receiver (lioran?)
1. custom hook code - lioran example? obs websocket?
1. Bits?
1. Does linux support audio these days?
1. https://inloop.github.io/sqlite-viewer/




%prep
%autosetup -n djallin2-0.8.2

%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-djallin2 -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.2-1
- Package Spec generated