cnl_cnl_cnl

Untitled

Aug 23rd, 2026
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. 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=%"
  2.  
  3. function cnl_db.itemUpdate()
  4. cecho("Downloading full eqlist and loading into database.\n")
  5. getHTTP(URL)
  6. end
  7.  
  8. function cnl_db.downloadEQListHandler(evt,url,body)
  9. local forges = {}
  10. if url == URL then cecho("MATCH!!!") end
  11. cecho("EQ list downloaded.\n")
  12. cecho("Parsing...\n")
  13.  
  14. local body_split = body:split([[<div class="item">]])
  15. local items = {}
  16. local mydb = cnl_db.db
  17. mydb:_begin()
  18. for _,text in pairs(body_split) do
  19. local _,_,vnum = rex.find(text,"VNUM: ([\\d]+)")
  20. if vnum then
  21. local _,_,name = rex.find(text,"VNUM:\\s+\\d+\">([^<]+)")
  22. local _,_,type = rex.find(text,"type\">\\[([^\\]]+)\\]")
  23. local _,_,keyword = rex.find(text,"keywords\">([^<]+)")
  24. local item = {}
  25. items[vnum] = item
  26. item.name = name
  27. item.type = type
  28. item.keyword = keyword
  29. db:add(mydb.item,{vnum=tonumber(vnum), name=name, type=type, keyword=keyword})
  30.  
  31. -- NEW CODE TO CAPTURE FORGES
  32. if rex.find(text,[[class="forge"]]) then
  33. local init = false
  34. local no_error = true
  35.  
  36. if not forges[vnum] then
  37.  
  38. forges[vnum] = { forge = name }
  39. db:add(mydb.forge,{forgeId=tonumber(vnum),name=name})
  40. end
  41.  
  42. for _,cpText in pairs(text:split([[div class="forge"]])[2]:split([[span class="attachitem"]])) do
  43. if init and no_error then
  44. local _,_,qty,name = rex.find(cpText,">([0-9]+) x ([^<]+)<")
  45. if qty and name then
  46. table.insert(forges[vnum],{qty=qty,name=name})
  47. db:add(mydb.forge_component,{forgeId=tonumber(vnum),name=name,qty=qty})
  48. else
  49. no_error = false
  50. table.insert(forges[vnum],{root_error=cpText})
  51. end
  52. elseif init then
  53. table.insert(forges[vnum],{error=cpText})
  54. end
  55. init = true
  56. end
  57. end
  58. -- //NEW CODE TO CAPTURE FORGES
  59.  
  60. end
  61. end
  62. mydb:_commit()
  63. mydb:_end()
  64. cecho("done.\n")
  65. end
  66. cnl_db.downloadEQListHandlerId = cnl_db.downloadEQListHandlerId or
  67. registerAnonymousEventHandler([[sysGetHttpDone]],[[cnl_db.downloadEQListHandler]])
  68.  
  69.  
  70. function cnl_db.downloadEQListErrorHandler(evt,url,body)
  71. if url == URL then cecho("MATCH!!!") end
  72. cecho("Error downloading EQ List.\n")
  73. end
  74. cnl_db.downloadEQListErrorHandlerId = cnl_db.downloadEQListErrorHandlerId or
  75. registerAnonymousEventHandler([[sysGetHttpError]],[[cnl_db.downloadEQListErrorHandler]])
  76.  
Advertisement
Add Comment
Please, Sign In to add comment