media/theonion.lua: Relicense under AGPLv3+
[libquvi-scripts.git] / share / util / resolve_redirections.lua
blob869c9109cb4a11b054c573d842ad06bbed694333
1 -- libquvi-scripts
2 -- Copyright (C) 2012-2013 Toni Gundogdu <legatvs@gmail.com>
3 --
4 -- This file is part of libquvi-scripts <http://quvi.sourceforge.net/>.
5 --
6 -- This program is free software: you can redistribute it and/or
7 -- modify it under the terms of the GNU Affero General Public
8 -- License as published by the Free Software Foundation, either
9 -- version 3 of the License, or (at your option) any later version.
11 -- This program is distributed in the hope that it will be useful,
12 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
13 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 -- GNU Affero General Public License for more details.
16 -- You should have received a copy of the GNU Affero General
17 -- Public License along with this program. If not, see
18 -- <http://www.gnu.org/licenses/>.
21 local ResolveExceptions = {} -- Utility functions unique to this script
23 function resolve_redirections(qargs)
24 -- Let libcURL resolve the URL redirections for us.
25 local r = quvi.http.resolve(qargs.input_url)
26 if #r.resolved_url ==0 then return qargs.input_url end
28 -- Apply any exception rules to the destination URL.
29 return ResolveExceptions.YouTube(qargs, r.resolved_url)
30 end
33 -- Utility functions
36 function ResolveExceptions.YouTube(qargs, dst)
37 -- [UPDATE] 2012-11-18: g00gle servers seem not to strip the #t anymore
38 return dst
39 --[[
40 -- Preserve the t= parameter (if any). The g00gle servers
41 -- strip them from the destination URL after redirecting.
42 -- e.g. http://www.youtube.com/watch?v=LWxTGJ3TK1U#t=2m22s
43 -- -> http://www.youtube.com/watch?v=LWxTGJ3TK1U
44 return dst .. (qargs.input_url:match('(#t=%w+)') or '')
45 ]]--
46 end
48 -- vim: set ts=2 sw=2 tw=72 expandtab: