yomguy/DeeFuzzer

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.