Check-in [4c67a494e7]
Overview
| Comment: | More special case handling on Windows: file encoding, backslashes, url quoting |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4c67a494e77b075b75bb234a522104b6 |
| User & Date: | Oliver on 2017-01-22 16:45:23 |
| Other Links: | manifest | tags |
Context
|
2017-01-22
| ||
| 16:46 | new plugin: recording options which hijacks the record button, provides streamripper/fPls/youtube-dl specific command-line flags in a GUI. check-in: 64de51eb48 user: mario tags: trunk | |
| 16:45 | More special case handling on Windows: file encoding, backslashes, url quoting check-in: 4c67a494e7 user: Oliver tags: trunk | |
| 16:43 | Add `urlquote` check-in: fc5214876f user: Oliver tags: trunk | |
Changes
Modified contrib/file.py from [11aaabcfaa] to [72ed9c3d2c].
| ︙ | ︙ | |||
27 28 29 30 31 32 33 | # an optional plugin, and not overly well integrated. # # Bugs: # Only loads directories on startup. Doesn't work when post-activated # per pluginmanager2 for instance. And LANG=C breaks it on startup, # if media directories contain anything but ASCII filenames. # | < < < > > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# an optional plugin, and not overly well integrated.
#
# Bugs:
# Only loads directories on startup. Doesn't work when post-activated
# per pluginmanager2 for instance. And LANG=C breaks it on startup,
# if media directories contain anything but ASCII filenames.
#
# If your player doesn't play local files try unchecking "Convert file path to 'file:///' style URL". (Might happen on Windows when not using VLC.exe).
#
# After checking/unchecking restart Streamtuner2 for recollecting the local files.
# modules
import os
import re
import sys
from channels import *
from config import *
from compat2and3 import urlquote
# ID3 libraries
try:
from mutagen import File as get_meta
except:
try:
from ID3 import ID3
|
| ︙ | ︙ | |||
243 244 245 246 247 248 249 |
self.streams[main] = self.streams[main_base]
# extract meta data
def file_entry(self, fn, dir):
# basic data
url = ("%s/%s" % (dir, fn))
| | > | > > > | | 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
self.streams[main] = self.streams[main_base]
# extract meta data
def file_entry(self, fn, dir):
# basic data
url = ("%s/%s" % (dir, fn))
url = url.replace("\\", "/")
if conf.file_browser_converttourl:
url = urlquote(url.encode('utf-8'),":/") # needed also in VLC 2.0.8 on Ubuntu 12.04
#url = url.replace(" ", "%20") # for better readability on Ubuntu..., but not working with VLC 2.08
if url.startswith("/"):
url = "file://" + url
else:
url = "file:///" + url
else:
if conf.windows:
url=url.replace("/","\\",1) #1st slash must be backslash for VLC on Windows
meta = {
"title": "",
"filename": fn,
"url": url,
"genre": "",
"album": "",
"artist": "",
"length": "n/a",
"bitrate": 0,
"format": mime_fmt(self.fnext(fn)),
"editable": False,
}
# add ID3 tag infos
try:
streaminfo = get_meta(dir + "/" + fn)
# add streaminfo
if streaminfo.info: # no streaminfo.info, maybe ID3 available
try:
if not streaminfo.info.bitrate == 0:
meta.update({"bitrate": streaminfo.info.bitrate/1000})
except: #FLAC bitrate available in Mutagen 1.36; for M4A not available
pass
if not streaminfo.info.length == 0.0: #FLAC sometimes have it...
meta.update({"length": ddhhmmss(int(streaminfo.info.length))})
# add ID3
meta.update(mutagen_postprocess(streaminfo) or {})
except: # not supported by Mutagen
|
| ︙ | ︙ |