Requesting testers
achbed opened this issue · 7 comments
I've created a new branch called dsw-playlist. It's got a large number of changes that need testing, including an all-new playlist class. You can see the code at https://github.com/achbed/DeeFuzzer/tree/dsw-playlist - feel free to branch and submit pull requests back. At the current time, it's completely untested, and pretty much guaranteed to break your instance, so do NOT use this on a production machine.
Highlights:
- Huge refactoring effort to reduce code analysis warnings
- Created new Playlist sub-package, with base class and several subclasses
- Added playlist handler for PLS files
- Refactored Media types into a sub-package
- Added several type and file checks for security
- Reworked station.py to use new playlist classes
- Jingles now use the same playlist class (and can take advantage of M3U/PLS playlist types)
- New logging base types
- Added additional levels to logging functions (warning, debug, fatal)
- Renamed some utility functions to better describe their actual purpose
- Added Prev Track to OSC controls
- Now requires mutagen package
To Do:
- Update playlist class to allow caching of metadata from media files
- Update playlist class to read metadata from the playlist file instead of media files (Useful for CUE files)
- Update playlist class to support multiple metadata values for a single media file based on playback time (this will finally address issue #3 )
Hi @achbed. Impressive upgrade program! I'm in of course for testing.
Just a comment while I first read the code: new modules should be named with lowercase chars as proposed by pep8. I know the code is not completely compatible with pep8 yet, but this rules makes sense to me for every python projects.
Bah - I'll fix that. The issue here is that I'm going to have to rename it completely since my main dev box is Windows (and the file system is case insensitive). Just a warning for when you look at it next time.
OK. This is only the case for tools/Playlist and tools/Media.
So can we say DeeFuzzer runs on Windows ?
Seems like a circular import to fix:
Traceback (most recent call last):
File "scripts/deefuzzer", line 8, in <module>
import deefuzzer
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/__init__.py", line 1, in <module>
from core import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/core.py", line 46, in <module>
from deefuzzer.station import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/station.py", line 55, in <module>
from tools import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/__init__.py", line 7, in <module>
from utils import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/utils.py", line 19, in <module>
from Playlist import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/__init__.py", line 3, in <module>
from playlist import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/playlist.py", line 2, in <module>
from playlistbase import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/playlistbase.py", line 5, in <module>
from deefuzzer.tools.Media.media import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/__init__.py", line 3, in <module>
from mediabase import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/mediabase.py", line 3, in <module>
from deefuzzer.tools.Media.webm import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/webm.py", line 46, in <module>
class WebM(MediaBase):
NameError: name 'MediaBase' is not defined
Well, this is indeed a naked test version - there's going to be a lot of
that for a bit :)
Working up another commit now.
On Sun, Feb 1, 2015 at 2:33 PM, Guillaume Pellerin <notifications@github.com
wrote:
Seems like a circular import to fix:
Traceback (most recent call last):
File "scripts/deefuzzer", line 8, in
import deefuzzer
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/init.py", line 1, in
from core import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/core.py", line 46, in
from deefuzzer.station import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/station.py", line 55, in
from tools import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/init.py", line 7, in
from utils import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/utils.py", line 19, in
from Playlist import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/init.py", line 3, in
from playlist import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/playlist.py", line 2, in
from playlistbase import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Playlist/playlistbase.py", line 5, in
from deefuzzer.tools.Media.media import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/init.py", line 3, in
from mediabase import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/mediabase.py", line 3, in
from deefuzzer.tools.Media.webm import *
File "/home/momo/virtualenvs/deefuzzer/app/DeeFuzzer/deefuzzer/tools/Media/webm.py", line 46, in
class WebM(MediaBase):
NameError: name 'MediaBase' is not defined—
Reply to this email directly or view it on GitHub
#73 (comment).
As for running on Windows, it doesn't work right now. I haven't gotten the some of the packages running (especially python-shout). I'm testing on a Ubuntu server and editing in an IDE on Windows using a separate git instance to push up changes.
I think I've gotten a lot of the issues you mentioned nailed down. I've added media type filtering to the playlist objects (so we can't mix media types within a single playlist). I've also done a ton of refactoring, cleanup, and documentation to the code.