mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Ports TG's BSQL library (#26455)
* Ports TG's BSQL * write perms * my mistake * Missing migrations, fixes mistakes, removes unneeded logs * Missing migrations, fixes mistakes, removes unneeded logs * haha * Final missing migration, actually fix runtime * Fucked up this doesn't throw a warning * sql fixes; polls
This commit is contained in:
@@ -48,10 +48,12 @@
|
||||
//sql += " [query.toSQL()]"
|
||||
// Pagination
|
||||
// to_chat(world, sql)
|
||||
var/DBQuery/_query = dbcon_old.NewQuery(sql)
|
||||
var/datum/DBQuery/_query = SSdbcore.NewQuery(sql)
|
||||
_query.Execute()
|
||||
if(_query.ErrorMsg())
|
||||
world.log << _query.ErrorMsg()
|
||||
qdel(_query)
|
||||
return
|
||||
|
||||
var/list/results = list()
|
||||
while(_query.NextRow())
|
||||
@@ -64,6 +66,7 @@
|
||||
"ckey" =_query.item[5]
|
||||
))
|
||||
results += CB
|
||||
qdel(_query)
|
||||
return results
|
||||
|
||||
/obj/machinery/computer/library/proc/get_num_results()
|
||||
@@ -71,8 +74,11 @@
|
||||
//if(query)
|
||||
//sql += query.toSQL()
|
||||
|
||||
var/DBQuery/_query = dbcon_old.NewQuery(sql)
|
||||
_query.Execute()
|
||||
var/datum/DBQuery/_query = SSdbcore.NewQuery(sql)
|
||||
if(!_query.Execute())
|
||||
message_admins("Error: [_query.ErrorMsg()]")
|
||||
log_sql("Error: [_query.ErrorMsg()]")
|
||||
return
|
||||
while(_query.NextRow())
|
||||
return text2num(_query.item[1])
|
||||
return 0
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<A href='?src=\ref[src];switchscreen=0'>(Return to main menu)</A><BR>"}
|
||||
if(4)
|
||||
dat += "<h3>External Archive</h3>"
|
||||
if(!dbcon_old.IsConnected())
|
||||
if(!SSdbcore.IsConnected())
|
||||
dat += "<font color=red><b>ERROR</b>: Unable to contact External Archive. Please contact your system administrator for assistance.</font>"
|
||||
else
|
||||
num_results = src.get_num_results()
|
||||
@@ -267,14 +267,16 @@
|
||||
var/datum/cachedbook/target = getBookByID(href_list["del"]) // Sanitized in getBookByID
|
||||
var/ans = alert(usr, "Are you sure you wish to delete \"[target.title]\", by [target.author]? This cannot be undone.", "Library System", "Yes", "No")
|
||||
if(ans=="Yes")
|
||||
var/DBQuery/query = dbcon_old.NewQuery("DELETE FROM library WHERE id=[target.id]")
|
||||
var/datum/DBQuery/query = SSdbcore.NewQuery("DELETE FROM library WHERE id=[target.id]")
|
||||
var/response = query.Execute()
|
||||
if(!response)
|
||||
to_chat(usr, query.ErrorMsg())
|
||||
qdel(query)
|
||||
return
|
||||
log_admin("LIBRARY: [usr.name]/[usr.key] has deleted \"[target.title]\", by [target.author] ([target.ckey])!")
|
||||
message_admins("[key_name_admin(usr)] has deleted \"[target.title]\", by [target.author] ([target.ckey])!")
|
||||
src.updateUsrDialog()
|
||||
qdel(query)
|
||||
return
|
||||
|
||||
if(href_list["delbyckey"])
|
||||
@@ -284,17 +286,19 @@
|
||||
var/tckey = ckey(href_list["delbyckey"])
|
||||
var/ans = alert(usr,"Are you sure you wish to delete all books by [tckey]? This cannot be undone.", "Library System", "Yes", "No")
|
||||
if(ans=="Yes")
|
||||
var/DBQuery/query = dbcon_old.NewQuery("DELETE FROM library WHERE ckey='[sanitizeSQL(tckey)]'")
|
||||
var/response = query.Execute()
|
||||
var/datum/DBQuery/query = SSdbcore.NewQuery("DELETE FROM library WHERE ckey='[sanitizeSQL(tckey)]'")
|
||||
var/datum/DBQuery/response = query.Execute()
|
||||
if(!response)
|
||||
to_chat(usr, query.ErrorMsg())
|
||||
qdel(query)
|
||||
return
|
||||
var/affected=query.RowsAffected()
|
||||
if(affected==0)
|
||||
if(response.item.len==0)
|
||||
to_chat(usr, "<span class='danger'>Unable to find any matching rows.</span>")
|
||||
qdel(query)
|
||||
return
|
||||
log_admin("LIBRARY: [usr.name]/[usr.key] has deleted [affected] books written by [tckey]!")
|
||||
message_admins("[key_name_admin(usr)] has deleted [affected] books written by [tckey]!")
|
||||
log_admin("LIBRARY: [usr.name]/[usr.key] has deleted [response.item.len] books written by [tckey]!")
|
||||
message_admins("[key_name_admin(usr)] has deleted [response.item.len] books written by [tckey]!")
|
||||
qdel(query)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
@@ -390,15 +394,14 @@
|
||||
if(scanner.cache)
|
||||
var/choice = input("Are you certain you wish to upload this title to the Archive?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm")
|
||||
establish_old_db_connection()
|
||||
if(!dbcon_old.IsConnected())
|
||||
if(!SSdbcore.Connect())
|
||||
alert("Connection to Archive has been severed. Aborting.")
|
||||
else
|
||||
var/sqltitle = sanitizeSQL(scanner.cache.name)
|
||||
var/sqlauthor = sanitizeSQL(scanner.cache.author)
|
||||
var/sqlcontent = sanitizeSQL(scanner.cache.dat)
|
||||
var/sqlcategory = sanitizeSQL(upload_category)
|
||||
var/DBQuery/query = dbcon_old.NewQuery("INSERT INTO library (author, title, content, category, ckey) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]', '[ckey(usr.key)]')")
|
||||
var/datum/DBQuery/query = SSdbcore.NewQuery("INSERT INTO library (author, title, content, category, ckey) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]', '[ckey(usr.key)]')")
|
||||
var/response = query.Execute()
|
||||
if(!response)
|
||||
to_chat(usr, query.ErrorMsg())
|
||||
@@ -413,7 +416,7 @@
|
||||
if(!href_list["id"])
|
||||
return
|
||||
|
||||
if(!dbcon_old.IsConnected())
|
||||
if(!SSdbcore.IsConnected())
|
||||
alert("Connection to Archive has been severed. Aborting.")
|
||||
return
|
||||
|
||||
@@ -438,7 +441,7 @@
|
||||
return
|
||||
var/bookid = href_list["manual"]
|
||||
|
||||
if(!dbcon_old.IsConnected())
|
||||
if(!SSdbcore.IsConnected())
|
||||
alert("Connection to Archive has been severed. Aborting.")
|
||||
return
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
<A href='?src=\ref[src];setauthor=1'>Filter by Author: [query.author]</A><br />
|
||||
<A href='?src=\ref[src];search=1'>\[Start Search\]</A><br />"}
|
||||
if(1)
|
||||
establish_old_db_connection()
|
||||
if(!dbcon_old.IsConnected())
|
||||
if(!SSdbcore.Connect())
|
||||
dat += "<font color=red><b>ERROR</b>: Unable to contact External Archive. Please contact your system administrator for assistance.</font><br />"
|
||||
else if(num_results == 0)
|
||||
dat += "<em>No results found.</em>"
|
||||
|
||||
@@ -91,8 +91,11 @@
|
||||
var/sqlid = text2num(id)
|
||||
if(!sqlid)
|
||||
return
|
||||
var/DBQuery/query = dbcon_old.NewQuery("DELETE FROM library WHERE id=[sqlid]")
|
||||
query.Execute()
|
||||
var/datum/DBQuery/query = SSdbcore.NewQuery("DELETE FROM library WHERE id=[sqlid]")
|
||||
if(!query.Execute())
|
||||
message_admins("Error: [query.ErrorMsg()]")
|
||||
log_sql("Error: [query.ErrorMsg()]")
|
||||
qdel(query)
|
||||
|
||||
/datum/library_catalog/proc/getBookByID(var/id as text)
|
||||
if("[id]" in cached_books)
|
||||
@@ -101,8 +104,13 @@
|
||||
var/sqlid = text2num(id)
|
||||
if(!sqlid)
|
||||
return
|
||||
var/DBQuery/query = dbcon_old.NewQuery("SELECT id, author, title, category, ckey FROM library WHERE id=[sqlid]")
|
||||
query.Execute()
|
||||
var/datum/DBQuery/query = SSdbcore.NewQuery("SELECT id, author, title, category, ckey FROM library WHERE id=[sqlid]")
|
||||
if(!query.Execute())
|
||||
message_admins("Error: [query.ErrorMsg()]")
|
||||
log_sql("Error: [query.ErrorMsg()]")
|
||||
qdel(query)
|
||||
return
|
||||
qdel(query)
|
||||
|
||||
var/list/results=list()
|
||||
while(query.NextRow())
|
||||
|
||||
Reference in New Issue
Block a user