85 Commits

Author SHA1 Message Date
Terry Geng
0080e9b4cd
fix: file size bug, upload bug 2020-05-19 09:23:19 +08:00
Terry Geng
fae93d99e0
feat: add config item for maximum upload file size 2020-05-19 09:12:52 +08:00
Azlux
23a7022bdf Improvement of #154 2020-05-18 16:59:01 +02:00
Terry Geng
edf5495fe5
feat: several improvements to azlux's token auth scheme #154
1. 'auth_method' in config, where users can select between
   'password' and 'token'.
2. create index for token, avoid iterating the entire user
   section when validating tokens.
3. only generate token for a user when there's no token for
   him in the db, avoid tokens fill the db.
2020-05-18 10:17:08 +08:00
Azlux
4017e7bff0 add webinterface token
#154
2020-05-17 20:28:27 +02:00
Terry Geng
40ea744e7f
refactor: move music db into a separated file.
IMPORTANT NOTE:
The default database path has changed. It was database.db, but
now they ARE settings.db and music.db.

Database migration will detect music table in settings.db, and
move it out of settings.db.

To update from old version, you need to
 1. if you use your own db path settings in the command
    line or in configuration.ini, you don't have to change
    anything;
 1. or,if you use default database path, rename database.db
    into settings.db.
2020-05-13 10:43:40 +08:00
Terry Geng
e0e0819605 fix: use native python function to create non-blocking pipe.
Thanks @azlux for this solution. Close #116.

Also created an option 'redirect_ffmpeg_log' to enable/disable
reading the log of ffmpeg.
2020-04-18 19:46:20 +08:00
Terry Geng
622f86c8f2 fix: listfile problem 2020-04-10 10:09:43 +08:00
Terry Geng
e86b5ca659 refactor: rewrite confusing part 2020-04-08 08:55:58 +08:00
Terry Geng
a5a8cb230d Update Readme 2020-03-28 23:27:39 +08:00
Terry Geng
bbe208d162 fix: move message string to config file 2020-03-25 21:41:59 +08:00
Azlux
3d3c55a0fb fix config 2020-03-25 12:41:46 +01:00
Martin Römer
8f48b7deda add feature autostop 2020-03-23 16:08:26 +01:00
Terry Geng
e256d50c5c refactor: removed useless files path cache 2020-03-22 21:59:05 +08:00
Terry Geng
1d1ff50a59 feat: add 'clear_when_stop_in_oneshot' option in config for azlux 2020-03-20 10:49:44 +08:00
Terry Geng
803d8d0fda fix: delete file if ffmpeg failed 2020-03-10 22:59:52 +08:00
Terry Geng
0ac9603072 feat: Lartza's urlban idea #91, fixed private message 2020-03-10 10:14:43 +08:00
Terry Geng
c13d264e3e feat: tag current song 2020-03-09 10:14:12 +08:00
Terry Geng
048da4046b feat: 'delete' command to remove files from library 2020-03-09 00:02:22 +08:00
Terry Geng
22ba308b14 feat: optimized autoplay with Lartz 2020-03-08 21:25:30 +08:00
Terry Geng
091d303729 fix: still one-shot 2020-03-08 19:55:41 +08:00
Terry Geng
f7042db657 feat: 'search' command to search the db, and 'shortlist' to add songs from search result 2020-03-08 16:56:31 +08:00
Terry Geng
369af16aed fix: no admin check for dropdatabase 2020-03-08 13:55:41 +08:00
Terry Geng
2faa9dc8d3 feat: web interface tag support 2020-03-08 12:53:17 +08:00
Terry Geng
f8cfb163ed feat: add tags, remove tags, play tags, find tags #91 2020-03-08 11:31:34 +08:00
Terry Geng
487b5b9616 fix: music not saved after downloading. some tricky oneshot problem #91 2020-03-08 10:28:03 +08:00
Terry Geng
4fce3b956e feat: directory cache 2020-03-07 15:12:22 +08:00
Terry Geng
8e6a639e57 chore: config file. 2020-03-06 17:13:45 +08:00
Terry Geng
b6bb449874 REFACTOR: DIFFERENT PLAYLIST #91 2020-03-06 01:39:24 +08:00
Terry Geng
6ab8a7958a REFACTOR: ITEM REVOLUTION #91 2020-03-05 16:28:08 +08:00
Terry Geng
499186c738 fix: message too long on some extreme cases 2020-03-03 16:47:24 +08:00
Terry Geng
acf43eed24 chore: beautified current song display 2020-03-03 16:15:47 +08:00
Terry Geng
28320ddfe5 fix: launch_music didn't wait for downloading #89 2020-03-03 10:11:50 +08:00
Terry Geng
61497b1ecb feat: 'yplay' play the first result. add 'last' command. #87 2020-03-03 09:27:35 +08:00
Terry Geng
dbe317bf31 feat: beautified current song string, fix ytplay index problem 2020-03-02 19:19:13 +08:00
Terry Geng
b6a6441ad5 chore: update help 2020-03-02 11:31:20 +08:00
Terry Geng
e17d5446bf feat: add ytquery and ytplay 2020-03-02 11:23:16 +08:00
Azlux
7d5f8fc778 new version ! 2020-02-29 01:28:46 +01:00
Terry Geng
cf1feea870 chore: optimize logging. separate bot log and web log. 2020-02-28 14:15:57 +08:00
Terry Geng
b640ff4721 fix: process error from youtube-dl correctly. #80 2020-02-27 21:10:44 +08:00
Terry Geng
4a7dfc48c2 fix: missed repeat command 2020-02-27 11:55:00 +08:00
Terry Geng
020ddbca22 fix: 'jump' now remove files behind in one-shot mode. #79 2020-02-27 09:44:21 +08:00
Terry Geng
a03f82d90a feat: remove item once played in one-shot mode. make it as close to the old version as possible, #79 2020-02-27 00:59:20 +08:00
Terry Geng
a46a1d7073 refactor: changed all 'loop' into 'repeat', which is the term used in iTunes 2020-02-26 23:37:53 +08:00
Terry Geng
b85956ef2f feat: database and config support for playback mode. 2020-02-26 22:56:07 +08:00
Terry Geng
6a1320f8f9 feat: three playback mode "one-shot", "loop", "random"
fix: bugs when you are on the last item and you want
remove it.

Some tips for testing:
Observe the behavior when you are playing the last
item and you remove the last item, for all three modes.
2020-02-26 22:09:53 +08:00
Terry Geng
9ce98196a1 fix: impose file path check for launch_music and resume, fixed #77 2020-02-26 16:57:56 +08:00
Terry Geng
78b11d1fb5 fix: missed token part for joinme 2020-02-25 19:40:27 +08:00
Terry Geng
8622ff1c66 fix: duckv placeholder problem. rm problem 2020-02-25 10:09:05 +08:00
Terry Geng
97f2326d9b
Add more controls (#71)
* add more ducking command

* fix current music command

* provide more controls, like pause, resume, clear.

* add more controls in the web interface

* refactored and improved:
1. move get_music_tag_info to util, and
2. refined logic related to it.
3. now playlist will check for tag info thus update_music_tag_info is
useless and was removed
4. add "add folder" feature to !file asked in #65,
5. fix bugs related to !file

* truncate file list if too long

* fixed several tiny bugs

* fixed several tiny bugs continue

* fixed several tiny bugs continue continue

* fixed several tiny bugs continue**3

* fixed several tiny bugs continue**4

* added !filematch command to add files that match a regex pattern.

* truncate long message

* fix web interface delete file issue

* refresh after delete file

* add regex to listfile command

* refactored command part, added partial match support for commands

* organized

* added random command

* typo

* typo

* Fixed many bugs.

* Added workaround for azlux/pymumble#44 to fix the memory leak.

* changed logging style.

* fixed bugs related to random and resume

* fix now playing

* fixed issue related to download

* fixed issue related to download 2

* fixed thumbnail issue

* fixed add url problem in web interface

* REFACTORED, turned db.ini into sqlite3 database.

* fixed remove song problem

* fixed radio get title problem. auto download if tmp file is deleted

* fixed current index not loaded from database

* fixed: order of songs loaded from the database

* fixed: some obscure bugs. beautified error of commands

* added a workaround for TerryGeng/botamusique#1.

* beautified

* fixed: channel not loaded in the config

* fixed: auto checked for updates

* fixed: mysterious bug: sometimes "now playing" string cannot be properly
displayed.
The real reason is: do use <br />, do not use <br>. I tried hours to
find out this.

* chore: unified debug messages that refer to music items

* feav: fetch ffmpeg stderr mentioned in #72, reformatted logs.

* fix: async download not working

* fix: async download not working, still

* fix: async download not working, finished

* feat: queue command: ▶current playing item◀

* feat: support more than one command prefix

* chore: added some WARNINGs into default config file to avoid people to touch it.

* refactor: packed all string contants into constants.py, just to avoid people messing it around.

* refactor: required by azlux. Added a configuration.example.ini to keep people away from configuration.default.ini
2020-02-24 19:17:02 +01:00