Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local URL = "https://eq.slothmud.org/?level_wa=&level_th=&level_ma=&level_cl=&level_dr=&level_mo=&level_ba=&level_ne=&level_av=&search=%"
- function cnl_db.itemUpdate()
- cecho("Downloading full eqlist and loading into database.\n")
- getHTTP(URL)
- end
- function cnl_db.downloadEQListHandler(evt,url,body)
- local forges = {}
- if url == URL then cecho("MATCH!!!") end
- cecho("EQ list downloaded.\n")
- cecho("Parsing...\n")
- local body_split = body:split([[<div class="item">]])
- local items = {}
- local mydb = cnl_db.db
- mydb:_begin()
- for _,text in pairs(body_split) do
- local _,_,vnum = rex.find(text,"VNUM: ([\\d]+)")
- if vnum then
- local _,_,name = rex.find(text,"VNUM:\\s+\\d+\">([^<]+)")
- local _,_,type = rex.find(text,"type\">\\[([^\\]]+)\\]")
- local _,_,keyword = rex.find(text,"keywords\">([^<]+)")
- local item = {}
- items[vnum] = item
- item.name = name
- item.type = type
- item.keyword = keyword
- db:add(mydb.item,{vnum=tonumber(vnum), name=name, type=type, keyword=keyword})
- -- NEW CODE TO CAPTURE FORGES
- if rex.find(text,[[class="forge"]]) then
- local init = false
- local no_error = true
- if not forges[vnum] then
- forges[vnum] = { forge = name }
- db:add(mydb.forge,{forgeId=tonumber(vnum),name=name})
- end
- for _,cpText in pairs(text:split([[div class="forge"]])[2]:split([[span class="attachitem"]])) do
- if init and no_error then
- local _,_,qty,name = rex.find(cpText,">([0-9]+) x ([^<]+)<")
- if qty and name then
- table.insert(forges[vnum],{qty=qty,name=name})
- db:add(mydb.forge_component,{forgeId=tonumber(vnum),name=name,qty=qty})
- else
- no_error = false
- table.insert(forges[vnum],{root_error=cpText})
- end
- elseif init then
- table.insert(forges[vnum],{error=cpText})
- end
- init = true
- end
- end
- -- //NEW CODE TO CAPTURE FORGES
- end
- end
- mydb:_commit()
- mydb:_end()
- cecho("done.\n")
- end
- cnl_db.downloadEQListHandlerId = cnl_db.downloadEQListHandlerId or
- registerAnonymousEventHandler([[sysGetHttpDone]],[[cnl_db.downloadEQListHandler]])
- function cnl_db.downloadEQListErrorHandler(evt,url,body)
- if url == URL then cecho("MATCH!!!") end
- cecho("Error downloading EQ List.\n")
- end
- cnl_db.downloadEQListErrorHandlerId = cnl_db.downloadEQListErrorHandlerId or
- registerAnonymousEventHandler([[sysGetHttpError]],[[cnl_db.downloadEQListErrorHandler]])
Advertisement
Add Comment
Please, Sign In to add comment