`-` is not sanitized when importing playlists, causing errors

PhantomBot Version: 3.0.0
OS Version: Windows 10 / Windows Server 2012.
Java Version: 1.8 u 211
Browser and Version (for Panel Support): Latest Firefox, Panel v1.0.0
Stock PhantomBot: Yes/No (Yes if you have not modified the scripts or Java Core) No, but unrelated modifications.

Let us know what help you need: I imported a new set of playlists into my bot last night and put “-” to split the playlist author name from the playlist name (organization thing shh). Turns out the database doesn’t fully sanitize the character and causes a mass of errors to pile in the console.

[11-01-2019 @ 10:27:30.047 MST] java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "-": syntax error)
at org.sqlite.core.DB.newSQLException(DB.java:893)
at org.sqlite.core.DB.newSQLException(DB.java:904)
at org.sqlite.core.DB.throwex(DB.java:871)
at org.sqlite.core.NativeDB.prepare(Native Method)
at org.sqlite.core.DB.prepare(DB.java:211)
at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:40)
at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:30)
at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>(JDBC4PreparedStatement.java:19)
at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:48)
at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:254)
at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:226)
at com.gmt2001.datastore.SqliteStore.SetString(SqliteStore.java:1014)
at com.gmt2001.datastore.DataStore.set(DataStore.java:293)
at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
at org.mozilla.javascript.gen.youtubePlayer_js_157._c_anonymous_15(youtubePlayer.js:370)
at org.mozilla.javascript.gen.youtubePlayer_js_157.call(youtubePlayer.js)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
at org.mozilla.javascript.gen.youtubePlayer_js_157._c_anonymous_70(youtubePlayer.js:1787)
at org.mozilla.javascript.gen.youtubePlayer_js_157.call(youtubePlayer.js)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
at org.mozilla.javascript.gen.init_js_1._c_callHook_22(init.js:315)
at org.mozilla.javascript.gen.init_js_1.call(init.js)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
at org.mozilla.javascript.gen.init_js_1._c_anonymous_28(init.js:510)
at org.mozilla.javascript.gen.init_js_1.call(init.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3282)
at org.mozilla.javascript.gen.init_js_1.call(init.js)
at org.mozilla.javascript.InterfaceAdapter.invokeImpl(InterfaceAdapter.java:137)
at org.mozilla.javascript.InterfaceAdapter$1.run(InterfaceAdapter.java:83)
at org.mozilla.javascript.Context.call(Context.java:501)
at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:503)
at org.mozilla.javascript.InterfaceAdapter.invoke(InterfaceAdapter.java:86)
at org.mozilla.javascript.jdk13.VMBridge_jdk13$1.invoke(VMBridge_jdk13.java:132)
at com.sun.proxy.$Proxy9.handle(Unknown Source)
at tv.phantombot.script.ScriptEventManager.onEvent(ScriptEventManager.java:75)
at tv.phantombot.twitch.irc.TwitchWSIRCParser.parseCommand(TwitchWSIRCParser.java:297)
at tv.phantombot.twitch.irc.TwitchWSIRCParser.onPrivMsg(TwitchWSIRCParser.java:358)
at tv.phantombot.twitch.irc.TwitchWSIRCParser.parseLine(TwitchWSIRCParser.java:274)
at tv.phantombot.twitch.irc.TwitchWSIRCParser.parseData(TwitchWSIRCParser.java:150)
at tv.phantombot.twitch.irc.TwitchWSIRC$1.run(TwitchWSIRC.java:190)
at java.lang.Thread.run(Unknown Source)

It generated a 10mb file full of that error. I just went in and manually edited the names however it didn’t actually create the playlists (Which is probably what also contributed to errors).

If anything else is needed let me know. Discord is the fastest way to reach me, just @mention me.