]> git.sesse.net Git - vlc/blobdiff - share/lua/meta/reader/filename.lua
Allow lua "meta reader" and implement a meta reader from filename.
[vlc] / share / lua / meta / reader / filename.lua
diff --git a/share/lua/meta/reader/filename.lua b/share/lua/meta/reader/filename.lua
new file mode 100644 (file)
index 0000000..1f8665b
--- /dev/null
@@ -0,0 +1,52 @@
+--[[
+ Gets an artwork for french TV channels
+
+ $Id$
+ Copyright © 2007 the VideoLAN team
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+--]]
+
+function trim (s)
+  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
+end
+
+function read_meta()
+    local metas = vlc.item.metas(vlc.item)
+
+    -- Don't do anything if there is already a title
+    if metas["title"] then
+        return
+    end
+
+    local name = metas["filename"];
+    if not name then
+        return
+    end
+
+    -- Find "Show.Name.S01E12-blah.avi"
+    local title, seasonNumber
+    _, _, showName, seasonNumber, episodeNumber = string.find(name, "(.+)S(%d%d)E(%d%d).*")
+    if not showName then
+        return
+    end
+
+    -- Remove . in showName
+    showName = trim(string.gsub(showName, "%.", " "))
+    vlc.item.set_meta(vlc.item, "title", showName.." S"..seasonNumber.."E"..episodeNumber)
+    vlc.item.set_meta(vlc.item, "showName", showName)
+    vlc.item.set_meta(vlc.item, "episodeNumber", episodeNumber)
+    vlc.item.set_meta(vlc.item, "seasonNumber", seasonNumber)
+end