mirror of
https://github.com/TangentFoxy/FindingMusic.git
synced 2024-11-25 10:24:21 +00:00
bug fixes, db updates, readme updated
This commit is contained in:
parent
08372b05d7
commit
f17a44e91f
@ -25,7 +25,8 @@ enforced by the library.
|
|||||||
- `invalid`: (TRUE or NULL) whether or not this is actually a track (whoops!)
|
- `invalid`: (TRUE or NULL) whether or not this is actually a track (whoops!)
|
||||||
- `searched`: (TRUE or NULL) whether or not a track has been searched for using
|
- `searched`: (TRUE or NULL) whether or not a track has been searched for using
|
||||||
`search.lua` (I'm being lazy, and obtaining music this way without fully
|
`search.lua` (I'm being lazy, and obtaining music this way without fully
|
||||||
updating the database, sue me)
|
updating the database, sue me) (note: this script has an issue with tracks
|
||||||
|
with special characters in their names, I am not sure of the cause)
|
||||||
|
|
||||||
(Note: I'm sure I've downloaded many tracks that aren't marked as downloaded.)
|
(Note: I'm sure I've downloaded many tracks that aren't marked as downloaded.)
|
||||||
|
|
||||||
@ -42,7 +43,8 @@ A simple interface library to use in a Lua REPL.
|
|||||||
one track per line, ignores empty lines)
|
one track per line, ignores empty lines)
|
||||||
- `remove(name)` removes a track, if it exists (input is normalized)
|
- `remove(name)` removes a track, if it exists (input is normalized)
|
||||||
- `find(str)` finds possible track matches by normalizing the input string,
|
- `find(str)` finds possible track matches by normalizing the input string,
|
||||||
returns them as a list of normalized names
|
returns them as a list of normalized names (cannot handle already normalized
|
||||||
|
input in my db because of a bug)
|
||||||
- `set(match, info)` match can be a list (as is returned by find) or a track
|
- `set(match, info)` match can be a list (as is returned by find) or a track
|
||||||
name (either will be normalized), info must be a table of key-value pairs,
|
name (either will be normalized), info must be a table of key-value pairs,
|
||||||
these will be set on the matched tracks, overwriting existing values if a key
|
these will be set on the matched tracks, overwriting existing values if a key
|
||||||
|
File diff suppressed because one or more lines are too long
16
music.lua
16
music.lua
@ -10,6 +10,7 @@ end
|
|||||||
|
|
||||||
function music.name(name)
|
function music.name(name)
|
||||||
local entry = music.data[music.normalize(name)]
|
local entry = music.data[music.normalize(name)]
|
||||||
|
if not entry then entry = music.data[name] end -- some normalized names have extra characters somehow
|
||||||
if entry then
|
if entry then
|
||||||
return entry.names[1]
|
return entry.names[1]
|
||||||
else
|
else
|
||||||
@ -102,10 +103,15 @@ function music.random(count, match, include, exclude)
|
|||||||
end
|
end
|
||||||
if type(match) == "table" then
|
if type(match) == "table" then
|
||||||
for _, v in ipairs(match) do
|
for _, v in ipairs(match) do
|
||||||
table.insert(matches, music.normalize(v))
|
table.insert(matches, v) -- should be normalized already
|
||||||
end
|
end
|
||||||
elseif type(match) == "string" then
|
elseif type(match) == "string" then
|
||||||
matches[1] = music.normalize(match)
|
-- compensating for db bug...
|
||||||
|
if music.data[music.normalize(match)] then
|
||||||
|
matches[1] = music.normalize(match)
|
||||||
|
else
|
||||||
|
matches[1] = match
|
||||||
|
end
|
||||||
else
|
else
|
||||||
for k in pairs(music.data) do
|
for k in pairs(music.data) do
|
||||||
table.insert(matches, k)
|
table.insert(matches, k)
|
||||||
@ -126,7 +132,7 @@ function music.random(count, match, include, exclude)
|
|||||||
return results
|
return results
|
||||||
end
|
end
|
||||||
|
|
||||||
function music.add(name)
|
function music.add(name) -- input should never be normalized
|
||||||
local normalized = music.normalize(name)
|
local normalized = music.normalize(name)
|
||||||
local entry = music.data[normalized]
|
local entry = music.data[normalized]
|
||||||
if entry then
|
if entry then
|
||||||
@ -160,6 +166,7 @@ end
|
|||||||
|
|
||||||
function music.remove(name)
|
function music.remove(name)
|
||||||
local normalized = music.normalize(name)
|
local normalized = music.normalize(name)
|
||||||
|
if not music.data[normalized] then normalized = name end -- handling db bug
|
||||||
if music.data[normalized] then
|
if music.data[normalized] then
|
||||||
music.data[normalized] = nil
|
music.data[normalized] = nil
|
||||||
return true
|
return true
|
||||||
@ -177,8 +184,9 @@ function music.set(match, info)
|
|||||||
end
|
end
|
||||||
|
|
||||||
tab = music.data[music.normalize(match)]
|
tab = music.data[music.normalize(match)]
|
||||||
|
if not tab then tab = music.data[match] end -- compensating for database bug
|
||||||
if not tab then
|
if not tab then
|
||||||
print("'" .. tab .. "' does not exist!")
|
print("'" .. match .. "' does not exist!")
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
for key, value in pairs(info) do
|
for key, value in pairs(info) do
|
||||||
|
16
search.lua
16
search.lua
@ -31,10 +31,14 @@ local count = tonumber(arg[1]) or 10
|
|||||||
local funkwhale = arg[2]
|
local funkwhale = arg[2]
|
||||||
|
|
||||||
local results = music.random(count, nil, nil, {downloaded = true, searched = true})
|
local results = music.random(count, nil, nil, {downloaded = true, searched = true})
|
||||||
local track
|
local errors_occurred, track = false
|
||||||
for _,v in ipairs(results) do
|
for _,v in ipairs(results) do
|
||||||
track = music.name(v) -- music.data[v].names[1]
|
track = music.name(v) -- music.data[v].names[1]
|
||||||
if not track then print("Track '" .. v .. "' does not exist?") end -- shouldn't happen
|
if not track then
|
||||||
|
print("Track '" .. v .. "' does not exist?")
|
||||||
|
errors_occurred = true
|
||||||
|
break
|
||||||
|
end
|
||||||
if urlencode then
|
if urlencode then
|
||||||
track = urlencode.encode_url(track)
|
track = urlencode.encode_url(track)
|
||||||
else
|
else
|
||||||
@ -45,5 +49,9 @@ for _,v in ipairs(results) do
|
|||||||
end
|
end
|
||||||
os.execute("open \"https://google.com/search?q=" .. track .. "\"")
|
os.execute("open \"https://google.com/search?q=" .. track .. "\"")
|
||||||
end
|
end
|
||||||
music.set(results, {searched = true})
|
if errors_occurred then
|
||||||
music.save()
|
print("Database not saved because errors occurred.")
|
||||||
|
else
|
||||||
|
music.set(results, {searched = true})
|
||||||
|
music.save()
|
||||||
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user