add torrent download
This commit is contained in:
parent
f9be19a1aa
commit
0b7d0ebdd8
|
@ -307,12 +307,13 @@ function makequery(q::String)
|
||||||
return Regex(nq)
|
return Regex(nq)
|
||||||
end
|
end
|
||||||
|
|
||||||
function search3(req)
|
function search3(req; dl = println)
|
||||||
query = HTTP.URIs.queryparams(req[:query])
|
query = HTTP.URIs.queryparams(req[:query])
|
||||||
q = get(query, "query", "")
|
q = get(query, "query", "")
|
||||||
isempty(q) && return missing_parameter("query")
|
isempty(q) && return missing_parameter("query")
|
||||||
if length(q) > 2 && q[end-1:end] == "!t"
|
if length(q) > 2 && q[end-1:end] == "!t"
|
||||||
@info "This is the special torrent mode!"
|
@info "This is the special torrent mode!"
|
||||||
|
dlfunc(strip(q[1:end-2]))
|
||||||
end
|
end
|
||||||
songCount = parse(Int, get(query, "songCount", "20"))
|
songCount = parse(Int, get(query, "songCount", "20"))
|
||||||
# TODO:
|
# TODO:
|
||||||
|
|
|
@ -6,6 +6,13 @@ function restpath!(target, req)
|
||||||
end
|
end
|
||||||
restp(p, app...) = branch(req -> restpath!(p, req), app...)
|
restp(p, app...) = branch(req -> restpath!(p, req), app...)
|
||||||
|
|
||||||
|
function torrentdl(query::AbstractString)
|
||||||
|
global rpc, me
|
||||||
|
TransmissionRPC.getauth(rpc)
|
||||||
|
todl = RuTrackers.getdiscography(query)
|
||||||
|
add.(Ref(rpc), RuTrackers.download.(Ref(me), todl))
|
||||||
|
end
|
||||||
|
|
||||||
dispatch = stack(
|
dispatch = stack(
|
||||||
# Browsing
|
# Browsing
|
||||||
restp("getMusicFolders", _ -> getMusicFolders()),
|
restp("getMusicFolders", _ -> getMusicFolders()),
|
||||||
|
@ -19,7 +26,7 @@ dispatch = stack(
|
||||||
# Album/song list
|
# Album/song list
|
||||||
restp("getRandomSongs", req -> getRandomSongs(req)),
|
restp("getRandomSongs", req -> getRandomSongs(req)),
|
||||||
# Searching
|
# Searching
|
||||||
restp("search3", req -> search3(req)),
|
restp("search3", req -> search3(req; dl = torrentdl)),
|
||||||
# Playlists
|
# Playlists
|
||||||
restp("createPlaylist", req -> createPlaylist(req)),
|
restp("createPlaylist", req -> createPlaylist(req)),
|
||||||
restp("getPlaylists", req -> getPlaylists(req)),
|
restp("getPlaylists", req -> getPlaylists(req)),
|
||||||
|
|
10
server.jl
10
server.jl
|
@ -5,6 +5,16 @@ using Revise
|
||||||
push!(LOAD_PATH, "/home/nixo/memories/projects/2018-2019/musicjl")
|
push!(LOAD_PATH, "/home/nixo/memories/projects/2018-2019/musicjl")
|
||||||
isdir("../juliaMusicDL") && push!(LOAD_PATH, realpath("../juliaMusicDL"))
|
isdir("../juliaMusicDL") && push!(LOAD_PATH, realpath("../juliaMusicDL"))
|
||||||
import Beets
|
import Beets
|
||||||
|
import RuTrackers
|
||||||
|
import MusicBrainz
|
||||||
|
import TransmissionRPC
|
||||||
|
|
||||||
|
import JSON
|
||||||
|
# FIXME: replace with JSON2 serialization
|
||||||
|
me = RuTrackers.RuTracker(read("rutracker.json", String) |> JSON.parse)
|
||||||
|
rpc = TransmissionRPC.Transmission(TransmissionRPC.Sockets.ip"192.168.1.3")
|
||||||
|
|
||||||
|
|
||||||
retry(Beets.update_albums, delays = Base.ExponentialBackOff(n=10, first_delay=5, max_delay = 100));
|
retry(Beets.update_albums, delays = Base.ExponentialBackOff(n=10, first_delay=5, max_delay = 100));
|
||||||
|
|
||||||
push!(LOAD_PATH, realpath("JlSonic"))
|
push!(LOAD_PATH, realpath("JlSonic"))
|
||||||
|
|
Loading…
Reference in New Issue