From 7f22ff2b1d411359a71d9cce937ec8f8e7e598f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Wed, 1 Aug 2018 16:53:26 +0200 Subject: [PATCH] Moved SoundCloud api-key out to different config file and fixed some list-naming issues that was caused with filter.clean was performed after list-name was encoded. Closes #362 --- package-lock.json | 92 +++++++++---------- server/apps/client.js | 6 +- server/config/api_key.example.js | 5 +- server/handlers/chat.js | 4 +- server/handlers/functions.js | 4 + server/handlers/io.js | 33 +++---- server/handlers/list.js | 4 +- server/handlers/list_change.js | 8 +- server/handlers/list_settings.js | 4 +- server/handlers/search.js | 3 +- .../assets/admin/authenticated/js/main.js | 8 +- server/public/assets/css/style.css | 4 + server/public/assets/js/channel.js | 11 ++- server/public/assets/js/embed.js | 3 +- server/public/assets/js/list.js | 10 +- server/public/assets/js/listeners.js | 1 + server/public/assets/js/player.js | 12 +++ server/public/assets/js/search.js | 21 +++-- server/public/assets/js/suggestions.js | 4 +- .../public/partials/channel/search.handlebars | 2 +- 20 files changed, 139 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59151876..52cb933d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -171,7 +171,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", @@ -231,7 +231,7 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "async-limiter": { "version": "1.0.0", @@ -885,7 +885,7 @@ }, "content-type": { "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { "version": "1.5.1", @@ -894,7 +894,7 @@ }, "cookie": { "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==" }, "cookie-parser": { "version": "1.4.3", @@ -919,7 +919,7 @@ }, "cookie-signature": { "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "copy-descriptor": { "version": "0.1.1", @@ -929,7 +929,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.4", @@ -1026,7 +1026,7 @@ }, "debug": { "version": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } @@ -1108,7 +1108,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -1117,7 +1117,7 @@ }, "depd": { "version": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "integrity": "sha512-Jlk9xvkTDGXwZiIDyoM7+3AsuvJVoyOpRupvEVy9nX3YO3/ieZxhlgh8GpLNZ8AY7HjO6y2YwpMSh1ejhu3uIw==" }, "deprecated": { "version": "0.0.1", @@ -1188,7 +1188,7 @@ }, "ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "resolved": "", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "encodeurl": { @@ -1587,7 +1587,7 @@ "express-session": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", - "integrity": "sha1-R7QWDIj0KrcP6KUI4xy/92dXqwo=", + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", "requires": { "cookie": "0.3.1", "cookie-signature": "1.0.6", @@ -1662,7 +1662,7 @@ "lodash": { "version": "4.17.5", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=" + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, "mime": { "version": "1.2.4", @@ -1703,7 +1703,7 @@ "mongoose": { "version": "4.13.11", "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.13.11.tgz", - "integrity": "sha1-2m7fjjmQVOEoNgFjFpmVGaNY20M=", + "integrity": "sha512-OgXmFc3vzXwq4zWp41XfSBDnKZLqnBc4Kh7mwwGjBE5iWH5tfkixaPK0uFtpEuzDzUvAIg33bgniyTsmc00olA==", "requires": { "async": "2.1.4", "bson": "~1.0.4", @@ -1723,7 +1723,7 @@ "mquery": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.3.tgz", - "integrity": "sha1-IhQS5dTnKQylWC3RbqjxkKUGtRg=", + "integrity": "sha512-NC8L14kn+qxJbbJ1gbcEMDxF0sC3sv+1cbRReXXwVvowcwY1y9KoVZFq0ebwARibsadu8lx8nWGvm3V0Pf0ZWQ==", "requires": { "bluebird": "3.5.0", "debug": "2.6.9", @@ -1784,7 +1784,7 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { "safe-buffer": "~5.1.0" } @@ -2071,7 +2071,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "gauge": { "version": "2.7.4", @@ -2662,7 +2662,7 @@ "hooks-fixed": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz", - "integrity": "sha1-IAdtqgfnfYphBog84/FyLgURQLA=" + "integrity": "sha512-YurCM4gQSetcrhwEtpQHhQ4M7Zo7poNGqY4kQGeBS6eZtOcT3tnNs01ThFa0jYBByAiYt1MjMjP/YApG0EnAvQ==" }, "hpkp": { "version": "2.0.0", @@ -2676,7 +2676,7 @@ }, "http-errors": { "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "integrity": "sha512-STnYGcKMXL9CGdtpeTFnLmgMSHTTNQJSHxiC4DETHKf934Q160Ht5pljrNeH24S0O9xUN+9vsDJZdZtk5js6Ww==", "requires": { "depd": "1.1.1", "inherits": "2.0.3", @@ -2743,7 +2743,7 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=" + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, "ienoopen": { "version": "1.0.0", @@ -2774,7 +2774,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", @@ -2919,7 +2919,7 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" } @@ -3302,7 +3302,7 @@ }, "mime": { "version": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=" + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mimic-response": { "version": "1.0.0", @@ -3351,14 +3351,14 @@ }, "mkdirp": { "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -3575,7 +3575,7 @@ "mongoose-legacy-pluralize": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q=" + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" }, "mpath": { "version": "0.3.0", @@ -3590,7 +3590,7 @@ "mquery": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz", - "integrity": "sha1-5fOH26vAubaYWeVQ6BD6q+DOq7A=", + "integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==", "requires": { "bluebird": "3.5.0", "debug": "2.6.9", @@ -3607,7 +3607,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multipipe": { @@ -3621,7 +3621,7 @@ "muri": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz", - "integrity": "sha1-rszz22TFaqfFs04A+Vt4eFJ6RyE=" + "integrity": "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg==" }, "nan": { "version": "2.10.0", @@ -3661,7 +3661,7 @@ }, "negotiator": { "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==" }, "next-tick": { "version": "1.0.0", @@ -3844,7 +3844,7 @@ }, "on-finished": { "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "requires": { "ee-first": "1.1.1" } @@ -3964,7 +3964,7 @@ }, "parseurl": { "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "integrity": "sha512-DjIMrEiCuzD/Xsr69WhcPCTeb6iZP5JgL/DZ3cYz0zMnyiXiscoqC6LLV2dYwQHfy9O+twCDVVPiFWb7xZhaOw==" }, "pascalcase": { "version": "0.1.1", @@ -4101,7 +4101,7 @@ "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { "asap": "~2.0.3" } @@ -4141,7 +4141,7 @@ }, "qs": { "version": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=" + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "random-bytes": { "version": "1.0.0", @@ -4259,7 +4259,7 @@ "redis": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", - "integrity": "sha1-ICKI4/WMSfYHnZevehDhMDrhSwI=", + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", "requires": { "double-ended-queue": "^2.1.0-0", "redis-commands": "^1.2.0", @@ -4423,7 +4423,7 @@ "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4=", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { "resolve-from": "^2.0.0", "semver": "^5.1.0" @@ -4455,7 +4455,7 @@ }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "resolved": "", "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-url": { @@ -4478,7 +4478,7 @@ }, "safe-buffer": { "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-regex": { "version": "1.1.0", @@ -4579,7 +4579,7 @@ }, "setprototypeof": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "resolved": "", "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, "sigmund": { @@ -4797,7 +4797,7 @@ }, "socket.io-adapter": { "version": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" + "integrity": "sha512-a8zS9B5yaggPHh4odsSZJmMmHsVi4eOym5zIjTALl6GQCkOCghorCGQjBCke3WKbY14lgHh7L1E7ZBZy8/sYrQ==" }, "socket.io-client": { "version": "2.1.0", @@ -5357,7 +5357,7 @@ "uid-safe": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "requires": { "random-bytes": "~1.0.0" } @@ -5424,7 +5424,7 @@ }, "unpipe": { "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "unset-value": { "version": "1.0.0", @@ -5503,11 +5503,11 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "v8flags": { "version": "2.1.1", @@ -5519,7 +5519,7 @@ }, "vary": { "version": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "verror": { "version": "1.10.0", @@ -5658,7 +5658,7 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "^2.0.0" } @@ -5743,7 +5743,7 @@ }, "xtend": { "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "integrity": "sha512-iTwvhNBRetXWe81+VcIw5YeadVSWyze7uA7nVnpP13ulrpnJ3UfQm5ApGnrkmxDJFdrblRdZs0EvaTCIfei5oQ==" }, "yargs": { "version": "3.10.0", diff --git a/server/apps/client.js b/server/apps/client.js index e6976ee7..55fd0f88 100755 --- a/server/apps/client.js +++ b/server/apps/client.js @@ -86,11 +86,11 @@ app.use(function (req, res, next) { } else { if (cookie === undefined) { try { - console.error((new Date), "originalUrl", req.originalUrl); - console.error((new Date), "couldn't fetch cookie for some reason, maybe no cookie exists?", req.get('origin'), "couldn't fetch cookie for some reason, maybe no cookie exists?"); + //console.error((new Date), "originalUrl", req.originalUrl); + //console.error((new Date), "couldn't fetch cookie for some reason, maybe no cookie exists?", req.get('origin'), "couldn't fetch cookie for some reason, maybe no cookie exists?"); } catch(e) { - console.error((new Date), "couldn't fetch origin"); + //console.error((new Date), "couldn't fetch origin"); } var user_name = Functions.hash_pass(Functions.rndName(uniqid.time(), 15)); res.cookie('_uI', user_name, { diff --git a/server/config/api_key.example.js b/server/config/api_key.example.js index cf514185..e1f9ff16 100644 --- a/server/config/api_key.example.js +++ b/server/config/api_key.example.js @@ -1,4 +1,7 @@ -var api_key = "xxxx"; +var api_key = { + "youtube": "xxxx", + "soundcloud": "", +}; try { module.exports = api_key; diff --git a/server/handlers/chat.js b/server/handlers/chat.js index 50d5afab..9121ba72 100644 --- a/server/handlers/chat.js +++ b/server/handlers/chat.js @@ -79,7 +79,7 @@ function chat(msg, guid, offline, socket) { } var coll = msg.channel.toLowerCase();//.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); Functions.getSessionAdminUser(Functions.getSession(socket), coll, function(userpass) { if(userpass != "" || msg.pass == undefined) { msg.pass = userpass; @@ -132,7 +132,7 @@ function all_chat(msg, guid, offline, socket) { var coll = msg.channel.toLowerCase();//.replace(/ /g,''); var data = msg.data; coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); Functions.check_inlist(coll, guid, socket, offline); if(data !== "" && data !== undefined && data !== null && data.length < 151 && data.replace(/\s/g, '').length){ diff --git a/server/handlers/functions.js b/server/handlers/functions.js index 3bff5e14..8231ab2c 100644 --- a/server/handlers/functions.js +++ b/server/handlers/functions.js @@ -11,9 +11,12 @@ var connected_db = mongojs('mongodb://' + mongo_config.host + '/user_credentials var crypto = require('crypto'); var db = require(pathThumbnails + '/handlers/db.js'); var uniqid = require('uniqid'); +var Filter = require('bad-words'); +var filter = new Filter({ placeHolder: 'x'}); function encodeChannelName(str) { var _fn = encodeURIComponent; + str = filter.clean(str); var toReturn = _fn(str); toReturn = toReturn.replace(/_/g, "%5F"); toReturn = toReturn.replace(/%26amp%3B/g, "%26").replace(/%26amp%3b/g, "%26"); @@ -25,6 +28,7 @@ function decodeChannelName(str) { var _fn = decodeURIComponent; str = str.toUpperCase(); var toReturn = _fn(str.replace(/%5F/g, "_")); + toReturn = filter.clean(toReturn); return toReturn.toLowerCase(); } diff --git a/server/handlers/io.js b/server/handlers/io.js index da0843dc..42c877f3 100644 --- a/server/handlers/io.js +++ b/server/handlers/io.js @@ -99,9 +99,12 @@ module.exports = function() { typeof(msg.channel) == "string" && typeof(msg.socket_id) == "string" && msg.channel != "") { db.collection("connected_users").find({"_id": msg.channel}, function(err, connected_users_channel) { if(connected_users_channel.length > 0 && connected_users_channel[0].users.indexOf(msg.guid) > -1) { + if(msg.hasOwnProperty("channel")) { + msg.channel = Functions.encodeChannelName(msg.channel); + } coll = msg.channel.toLowerCase();//.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); if(coll.indexOf("?") > -1){ coll = coll.substring(0, coll.indexOf("?")); } @@ -111,9 +114,7 @@ module.exports = function() { guid = msg.guid; socketid = msg.socket_id; socket.zoff_id = socketid; - if(msg.hasOwnProperty("channel")) { - msg.channel = Functions.encodeChannelName(msg.channel); - } + in_list = true; chromecast_object = true; socket.join(coll); @@ -139,8 +140,8 @@ module.exports = function() { } coll = Functions.removeEmojis(_list).toLowerCase(); //coll = coll.replace(/_/g, ""); - - coll = filter.clean(coll); + msg.channel = Functions.encodeChannelName(msg.channel); + //coll = filter.clean(coll); } catch(e) { return; } @@ -249,7 +250,7 @@ module.exports = function() { if(channel != "") coll = channel; if(coll !== undefined) { coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); db.collection("connected_users").findAndModify({ query: {"_id": coll}, update: {$pull: {users: guid}}, @@ -397,7 +398,7 @@ module.exports = function() { coll = Functions.removeEmojis(_list).toLowerCase(); //coll = coll.replace(/_/g, ""); // - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -425,7 +426,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -460,7 +461,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -482,7 +483,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -506,7 +507,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -571,7 +572,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -601,7 +602,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -631,7 +632,7 @@ module.exports = function() { if(msg.hasOwnProperty("channel") && msg.channel != "" && typeof(msg.channel) == "string") { coll = msg.channel;//.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); List.left_channel(coll, guid, short_id, in_list, socket, false); } }) @@ -670,7 +671,7 @@ module.exports = function() { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } diff --git a/server/handlers/list.js b/server/handlers/list.js index c976b5a4..56dbcdf0 100644 --- a/server/handlers/list.js +++ b/server/handlers/list.js @@ -60,7 +60,7 @@ function list(msg, guid, coll, offline, socket) { } coll = msg.channel.toLowerCase(); //.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); var pass = crypto.createHash('sha256').update(Functions.decrypt_string(msg.pass)).digest("base64"); db.collection('frontpage_lists').find({"_id": coll}, function(err, frontpage_lists){ if(frontpage_lists.length == 1) { @@ -129,7 +129,7 @@ function skip(list, guid, coll, offline, socket) { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } diff --git a/server/handlers/list_change.js b/server/handlers/list_change.js index cfd9a613..4d478018 100644 --- a/server/handlers/list_change.js +++ b/server/handlers/list_change.js @@ -537,7 +537,7 @@ function add_function(arr, coll, guid, offline, socket) { } coll = msg.channel.toLowerCase();//.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); Functions.getSessionAdminUser(Functions.getSession(socket), coll, function(userpass, adminpass) { if(adminpass != "" || msg.adminpass == undefined) { msg.adminpass = adminpass; @@ -601,7 +601,7 @@ function add_function(arr, coll, guid, offline, socket) { } coll = msg.channel.toLowerCase();//.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); Functions.getSessionAdminUser(Functions.getSession(socket), coll, function(userpass, adminpass) { if(adminpass != "" || msg.adminpass == undefined) { msg.adminpass = adminpass; @@ -674,7 +674,7 @@ function add_function(arr, coll, guid, offline, socket) { var coll = Functions.removeEmojis(params.channel).toLowerCase(); //coll = coll.replace(/_/g, "").replace(/ /g,''); - coll = filter.clean(coll); + //coll = filter.clean(coll); db.collection(coll + "_settings").find(function(err, docs){ if(docs !== null && docs.length !== 0 && docs[0].adminpass == Functions.hash_pass(Functions.hash_pass(Functions.decrypt_string(params.adminpass),true))) { @@ -723,7 +723,7 @@ function add_function(arr, coll, guid, offline, socket) { } //coll = coll.replace(/ /g,''); coll = Functions.removeEmojis(coll).toLowerCase(); - coll = filter.clean(coll); + //coll = filter.clean(coll); Functions.getSessionAdminUser(Functions.getSession(socket), coll, function(userpass, adminpass, gotten) { if(adminpass != "" || msg.adminpass == undefined) { msg.adminpass = adminpass; diff --git a/server/handlers/list_settings.js b/server/handlers/list_settings.js index 6311da8b..f994d69d 100644 --- a/server/handlers/list_settings.js +++ b/server/handlers/list_settings.js @@ -36,7 +36,7 @@ function password(inp, coll, guid, offline, socket) { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } @@ -100,7 +100,7 @@ function conf_function(params, coll, guid, offline, socket) { coll = Functions.removeEmojis(coll).toLowerCase(); //coll = coll.replace(/_/g, ""); - coll = filter.clean(coll); + //coll = filter.clean(coll); } catch(e) { return; } diff --git a/server/handlers/search.js b/server/handlers/search.js index 0fa45647..480181a3 100644 --- a/server/handlers/search.js +++ b/server/handlers/search.js @@ -1,7 +1,8 @@ var path = require('path'); var time_regex = /P((([0-9]*\.?[0-9]*)Y)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)W)?(([0-9]*\.?[0-9]*)D)?)?(T(([0-9]*\.?[0-9]*)H)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)S)?)?/; try { - var key = require(path.join(__dirname, '../config/api_key.js')); + var keys = require(path.join(__dirname, '../config/api_key.js')); + var key = keys.youtube; } catch(e) { console.log("Error - missing file"); console.log("Seems you forgot to create the file api_key.js in /server/config/. Have a look at api_key.example.js."); diff --git a/server/public/assets/admin/authenticated/js/main.js b/server/public/assets/admin/authenticated/js/main.js index 70df177b..67fd40d9 100644 --- a/server/public/assets/admin/authenticated/js/main.js +++ b/server/public/assets/admin/authenticated/js/main.js @@ -31,8 +31,12 @@ $(document).on("click", "#refresh_all", function(e){ function decodeChannelName(str) { var _fn = decodeURIComponent; str = str.toUpperCase(); - var toReturn = _fn(str.replace(/%5F/g, "_")); - return toReturn.toLowerCase(); + try { + var toReturn = _fn(str.replace(/%5F/g, "_")); + return toReturn.toLowerCase(); + } catch(e) { + return str.toLowerCase(); + } } socket.on("spread_listeners", function(obj){ diff --git a/server/public/assets/css/style.css b/server/public/assets/css/style.css index a9528500..1a2ae0d5 100755 --- a/server/public/assets/css/style.css +++ b/server/public/assets/css/style.css @@ -3096,6 +3096,10 @@ nav ul li:hover, nav ul li.active { width: 100vw; } + #search-wrapper:hover, #song-title:hover { + background: inherit; + } + #toast-container{ left:0% !important; width:100vw; diff --git a/server/public/assets/js/channel.js b/server/public/assets/js/channel.js index 4a64846d..ce949cf6 100644 --- a/server/public/assets/js/channel.js +++ b/server/public/assets/js/channel.js @@ -16,10 +16,13 @@ var Channel = { Helper.addClass(".pagination-results", "client-pagination-height"); Helper.addClass(".control-list", "client-control-list"); } else { - SC.initialize({ - client_id: 'ed53fc01f248f15becddf8eb52cc91ef' - }, function() { - }); + if(!api_key.hasOwnProperty("soundcloud")) soundcloud_enabled = false; + else { + SC.initialize({ + client_id: api_key.soundcloud + }, function() { + }); + } if(cast_ready_connect || chromecastAvailable || chromecastReady) { Helper.addClass(".volume-container", "volume-container-cast"); } diff --git a/server/public/assets/js/embed.js b/server/public/assets/js/embed.js index ded25bff..e110582c 100755 --- a/server/public/assets/js/embed.js +++ b/server/public/assets/js/embed.js @@ -6,6 +6,7 @@ var paused = false; var client = false; var startTime = 0; var hostMode = false; +var soundcloud_enabled = true; var socket_connected = false; var dynamicListeners = {}; var player_ready = false; @@ -54,7 +55,7 @@ var Crypt = { }; SC.initialize({ - client_id: 'ed53fc01f248f15becddf8eb52cc91ef' + client_id: api_key.soundcloud }, function() { }); diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 1d96e7e0..4f61ecf5 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -254,7 +254,7 @@ var List = { Helper.ajax({ method: "get", url: 'https://www.googleapis.com/youtube/v3/videos?id=' + full_playlist[i].id - + "&key=" + api_key + "&part=snippet", + + "&key=" + api_key.youtube + "&part=snippet", success: function (data) { data = JSON.parse(data); //Helper.log("Empty-checker items " + data.items.length); @@ -813,7 +813,7 @@ var List = { exportToYoutube: function() { ga('send', 'event', "export", "youtube"); - var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet&key=" + api_key; + var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet&key=" + api_key.youtube; Helper.removeClass(".exported-list-container", "hide"); Helper.removeClass("#playlist_loader_export", "hide"); Helper.ajax({ @@ -833,7 +833,7 @@ var List = { response = JSON.parse(response); var number_added = 0; var playlist_id = response.id; - var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=" + api_key; + var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=" + api_key.youtube; List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url) }, error: function(response){ @@ -902,12 +902,12 @@ var List = { if(full_playlist[num].hasOwnProperty("source") && full_playlist[num].source != "soundcloud") { List.insertInYouTubePlaylist(playlist_id, full_playlist[num].id, num, request_url) } else { - var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10"; + var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key.youtube+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10"; yt_url+="&q="+full_playlist[num].title; var title = full_playlist[num].title; var temptitle = title.split("-"); temptitle = temptitle.join(" ").split(" "); - var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; + var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id="; Helper.ajax({ type: "GET", url: yt_url, diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index d529a658..fa83a8b5 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -5,6 +5,7 @@ var client = false; if(domain.length > 0 && domain[0] == "client") { client = true; } +var soundcloud_enabled = true; var local_new_channel = false; var hiddenPlaylist = false; var videoSource; diff --git a/server/public/assets/js/player.js b/server/public/assets/js/player.js index 189583fb..c80b0f5e 100755 --- a/server/public/assets/js/player.js +++ b/server/public/assets/js/player.js @@ -245,6 +245,10 @@ var Player = { //Playercontrols.play_pause(); } else { if(videoSource == "soundcloud") { + if(!soundcloud_enabled) { + console.error("SoundCloud isn't enabled, so can't search on SoundCloud.."); + return; + } Player.soundcloud_player.play(); //SC.Widget(document.querySelector("#soundcloud_player")).play(); } else { @@ -264,6 +268,10 @@ var Player = { } else { paused = true; if(videoSource == "soundcloud") { + if(!soundcloud_enabled) { + console.error("SoundCloud isn't enabled, so can't search on SoundCloud.."); + return; + } Player.soundcloud_player.pause(); //SC.Widget(document.querySelector("#soundcloud_player")).pause(); } else { @@ -283,6 +291,10 @@ var Player = { }, loadSoundCloud: function(id, this_duration, start, end, _autoplay) { + if(!soundcloud_enabled) { + console.error("SoundCloud isn't enabled, so can't search on SoundCloud.."); + return; + } try { if(SC == null) return; } catch(e) { diff --git a/server/public/assets/js/search.js b/server/public/assets/js/search.js index 74a6e235..854d127c 100755 --- a/server/public/assets/js/search.js +++ b/server/public/assets/js/search.js @@ -44,14 +44,14 @@ var Search = { if(search_input !== ""){ searching = true; var keyword= encodeURIComponent(search_input); - var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key+"&videoEmbeddable=true&part=id&type=video&order=relevance&safeSearch=none&maxResults=25"; + var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key.youtube+"&videoEmbeddable=true&part=id&type=video&order=relevance&safeSearch=none&maxResults=25"; yt_url+="&q="+keyword; if(music)yt_url+="&videoCategoryId=10"; if(pagination) yt_url += "&pageToken=" + pagination; - var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; + var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id="; if(related) { - var yt_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+keyword+"&type=video&key="+api_key; - var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; + var yt_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+keyword+"&type=video&key="+api_key.youtube; + var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id="; } Helper.addClass(document.querySelector("#search-btn .material-icons"), "hide"); @@ -196,6 +196,11 @@ var Search = { }, soundcloudSearch: function(keyword) { + if(!soundcloud_enabled) { + document.querySelector("#results_soundcloud").innerHTML = '
No SoundCloud API-key, search disabled..
'; + + return; + } if(keyword.length == 0) return; SC.get('/tracks', { q: keyword @@ -308,9 +313,9 @@ var Search = { backgroundSearch: function(title, artist, length, totalNumber, current){ var keyword= encodeURIComponent(title + " " + artist); - var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10"; + var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key.youtube+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10"; yt_url+="&q="+keyword; - var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; + var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id="; artist = artist.split(" "); var temptitle = title.split("-"); temptitle = temptitle.join(" ").split(" "); @@ -454,7 +459,7 @@ importPlaylist: function(pId,pageToken){ var datatype; if(pageToken !== undefined) token = "&pageToken="+pageToken; - playlist_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+api_key+"&playlistId="+pId+token; + playlist_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+api_key.youtube+"&playlistId="+pId+token; if(youtube_authenticated) { datatype = "html"; headers = { @@ -597,7 +602,7 @@ importSpotifyPlaylist: function(url){ addVideos: function(ids){ var more = false; var next_ids = []; - var request_url="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=" + api_key + "&id="; + var request_url="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=" + api_key.youtube + "&id="; for(var i = 0; i < ids.length; i++) { if(i > 48) { more = true; diff --git a/server/public/assets/js/suggestions.js b/server/public/assets/js/suggestions.js index 11706a8e..21c47dc2 100755 --- a/server/public/assets/js/suggestions.js +++ b/server/public/assets/js/suggestions.js @@ -53,8 +53,8 @@ var Suggestions = { Helper.removeClass(document.querySelector(".suggest-title-info"), "hide"); Helper.removeClass("#suggest-song-html", "hide"); } - var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key; - var video_urls = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; + var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key.youtube; + var video_urls = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id="; Helper.ajax({ type: "GET", diff --git a/server/public/partials/channel/search.handlebars b/server/public/partials/channel/search.handlebars index 2749a555..e8f14d75 100644 --- a/server/public/partials/channel/search.handlebars +++ b/server/public/partials/channel/search.handlebars @@ -48,5 +48,5 @@ Next -
Test 2
+