diff --git a/package-lock.json b/package-lock.json
index 5eccb80..b8009a9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,6 +6,8 @@
"dependencies": {
"@f-list/fork-ts-checker-webpack-plugin": {
"version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@f-list/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-0.5.2.tgz",
+ "integrity": "sha512-0MTjYGG6e8KuIPcMwSy/3uMC2jYWAV2d5+Q8V3DkHT9hC982aRI9FFO72yWow4vKq25z6Tdov/dtcOGn8jxu7g==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^2.3.1",
@@ -19,6 +21,8 @@
},
"@f-list/vue-ts": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@f-list/vue-ts/-/vue-ts-1.0.2.tgz",
+ "integrity": "sha512-NWp79Io3DRAh7nYQ23yckW6IoI/Sn9O6JlfCvi2B9BFAXqXl7ShY2jcp+tlasDhFZ8CFBYoZDftnodEeGySHqw==",
"dev": true,
"requires": {
"typescript": "^3.2.2",
@@ -27,10 +31,14 @@
},
"@fortawesome/fontawesome-free": {
"version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.6.1.tgz",
+ "integrity": "sha512-0afQfB+HBeJHlXPzcF2Jjh78SbwPSkDjba/O7pZFzAW3WGKNzd4s4AqrZo7oIlMWGnfoyDo8+QeosK0+DTDrTg==",
"dev": true
},
"@types/lodash": {
"version": "4.14.119",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.119.tgz",
+ "integrity": "sha512-Z3TNyBL8Vd/M9D9Ms2S3LmFq2sSMzahodD6rCS9V2N44HUMINb75jNkSuwAx7eo2ufqTdfOdtGQpNbieUjPQmw==",
"dev": true
},
"@types/node": {
@@ -47,6 +55,8 @@
},
"@types/sortablejs": {
"version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.7.0.tgz",
+ "integrity": "sha512-VVsUcV+c3SEUqoLcP43zEkZArKulFK+NH2su9ZqWyzI9ZRZCVjQMdJh2H8LASnHzWxatpCzIfIyCT8B64ZDbMw==",
"dev": true
},
"@vue/component-compiler-utils": {
@@ -471,6 +481,8 @@
},
"appdmg": {
"version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.5.2.tgz",
+ "integrity": "sha512-i9ajRl1SscJgH63TmDpm/KLSCom7jCs2a2riT0onDFLNNO/h/lYmJHa2k3Ywn8jxhiv7jyhYR+Hofk+EiKXtPg==",
"optional": true,
"requires": {
"async": "^1.4.2",
@@ -698,6 +710,8 @@
},
"axios": {
"version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
+ "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"dev": true,
"requires": {
"follow-redirects": "^1.3.0",
@@ -949,6 +963,8 @@
},
"bootstrap": {
"version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz",
+ "integrity": "sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w==",
"dev": true
},
"bplist-creator": {
@@ -1768,6 +1784,8 @@
},
"css-loader": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.0.1.tgz",
+ "integrity": "sha512-XIVwoIOzSFRVsafOKa060GJ/A70c0IP/C1oVPHEX4eHIFF39z0Jl7j8Kua1SUTiqWDupUnbY3/yQx9r7EUB35w==",
"dev": true,
"requires": {
"icss-utils": "^4.0.0",
@@ -1987,6 +2005,8 @@
},
"date-fns": {
"version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
+ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
"dev": true
},
"date-now": {
@@ -2264,6 +2284,8 @@
},
"electron": {
"version": "3.0.13",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-3.0.13.tgz",
+ "integrity": "sha512-tfx5jFgXhCmpe6oPjcesaRj7geHqQxrJdbpseanRzL9BbyYUtsj0HoxwPAUvCx4+52P6XryBwWTvne/1eBVf9Q==",
"dev": true,
"requires": {
"@types/node": "^8.0.24",
@@ -2307,6 +2329,8 @@
},
"electron-log": {
"version": "2.2.17",
+ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz",
+ "integrity": "sha512-v+Af5W5z99ehhaLOfE9eTSXUwjzh2wFlQjz51dvkZ6ZIrET6OB/zAZPvsuwT6tm3t5x+M1r+Ed3U3xtPZYAyuQ==",
"dev": true
},
"electron-notarize": {
@@ -2372,6 +2396,8 @@
},
"electron-packager": {
"version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.0.1.tgz",
+ "integrity": "sha512-fXfldaZ1wihpPaMTSGMxvCeETJwVArlnMmKafVXLJbbZwS+WTjY4iL7ju9WMQ0LNGuiiIwSMCQFxt5iA087mqg==",
"dev": true,
"requires": {
"asar": "^0.14.0",
@@ -2484,6 +2510,8 @@
},
"electron-rebuild": {
"version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.2.tgz",
+ "integrity": "sha512-EeR4dgb6NN7ybxduUWMeeLhU/EuF+FzwFZJfMJXD0bx96K+ttAieCXOn9lTO5nA9Qn3hiS7pEpk8pZ9StpGgSg==",
"dev": true,
"requires": {
"colors": "^1.2.0",
@@ -2522,6 +2550,8 @@
},
"electron-squirrel-startup": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz",
+ "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=",
"optional": true,
"requires": {
"debug": "^2.2.0"
@@ -2535,6 +2565,8 @@
},
"electron-winstaller": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-2.7.0.tgz",
+ "integrity": "sha512-WKRUTyGzTQbM2Q6dYm/iQqdYRQRTMiFakPxqOCJrH29YPVelGG9vNldal68fnq2yL+FFsoQi/3+qb6jDk143mw==",
"optional": true,
"requires": {
"asar": "^0.11.0",
@@ -3010,6 +3042,8 @@
},
"extract-loader": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/extract-loader/-/extract-loader-3.1.0.tgz",
+ "integrity": "sha512-baiz/xalbyQJOTHwcMJKXYsHbhEHGWQ2loK26vqZVoqO6eeinrnSrMx9681pNZgGRqz2L/PsyNxz+PVDiSmNPg==",
"dev": true,
"requires": {
"babel-runtime": "^6.26.0",
@@ -3068,6 +3102,8 @@
},
"file-loader": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
+ "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
"dev": true,
"requires": {
"loader-utils": "^1.0.2",
@@ -4868,6 +4904,8 @@
},
"keytar": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/keytar/-/keytar-4.3.0.tgz",
+ "integrity": "sha512-pd++/v+fS0LQKmzWlW6R1lziTXFqhfGeS6sYLfuTIqEy2pDzAbjutbSW8f9tnJdEEMn/9XhAQlT34VAtl9h4MQ==",
"requires": {
"nan": "2.8.0",
"prebuild-install": "^5.0.0"
@@ -5544,6 +5582,8 @@
},
"node-sass": {
"version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz",
+ "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==",
"dev": true,
"requires": {
"async-foreach": "^0.1.3",
@@ -5804,6 +5844,8 @@
},
"optimize-css-assets-webpack-plugin": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz",
+ "integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==",
"dev": true,
"requires": {
"cssnano": "^4.1.0",
@@ -6714,6 +6756,8 @@
},
"qs": {
"version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz",
+ "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==",
"dev": true
},
"querystring": {
@@ -6765,6 +6809,8 @@
},
"raven-js": {
"version": "3.27.0",
+ "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.27.0.tgz",
+ "integrity": "sha512-vChdOL+yzecfnGA+B5EhEZkJ3kY3KlMzxEhShKh6Vdtooyl0yZfYNFQfYzgMf2v4pyQa+OTZ5esTxxgOOZDHqw==",
"dev": true
},
"raw-body": {
@@ -7099,6 +7145,8 @@
},
"sass-loader": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+ "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
"dev": true,
"requires": {
"clone-deep": "^2.0.1",
@@ -7550,6 +7598,8 @@
},
"sortablejs": {
"version": "1.8.0-rc1",
+ "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.0-rc1.tgz",
+ "integrity": "sha512-umyNbQVDwRgc0SZvUB+FRUIUqACnu5vCCmK0zv/xWA3eDSOh+IZsg3GHdWvEOcUBwnykqyk760+YPgVa8HfxFg==",
"dev": true
},
"source-list-map": {
@@ -7644,6 +7694,8 @@
},
"spellchecker": {
"version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/spellchecker/-/spellchecker-3.5.0.tgz",
+ "integrity": "sha512-Xa7XnRulYhh5N/XENeL2O8/875XhLBjos7Bemv0rfcgV6ojNYMSrXscUZUGJwniX2t67eY+lNUJeptD1bMauHQ==",
"requires": {
"any-promise": "^1.3.0",
"nan": "^2.10.0"
@@ -7833,6 +7885,8 @@
},
"style-loader": {
"version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+ "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
"dev": true,
"requires": {
"loader-utils": "^1.1.0",
@@ -8157,6 +8211,8 @@
},
"ts-loader": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.3.1.tgz",
+ "integrity": "sha512-fDDgpBH3SR8xlt2MasLdz3Yy611PQ/UY/KGyo7TgXhTRU/6sS8uGG0nJYnU1OdFBNKcoYbId1UTNaAOUn+i41g==",
"dev": true,
"requires": {
"chalk": "^2.3.0",
@@ -8174,6 +8230,8 @@
},
"tslint": {
"version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz",
+ "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==",
"dev": true,
"requires": {
"babel-code-frame": "^6.22.0",
@@ -8516,6 +8574,8 @@
},
"vue-loader": {
"version": "15.4.2",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.4.2.tgz",
+ "integrity": "sha512-nVV27GNIA9MeoD8yQ3dkUzwlAaAsWeYSWZHsu/K04KCD339lW0Jv2sJWsjj3721SP7sl2lYdPmjcHgkWQSp5bg==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^2.0.0",
@@ -8537,6 +8597,8 @@
},
"vue-template-compiler": {
"version": "2.5.21",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz",
+ "integrity": "sha512-Vmk5Cv7UcmI99B9nXJEkaK262IQNnHp5rJYo+EwYpe2epTAXqcVyExhV6pk8jTkxQK2vRc8v8KmZBAwdmUZvvw==",
"dev": true,
"requires": {
"de-indent": "^1.0.2",
@@ -8562,6 +8624,8 @@
},
"webpack": {
"version": "4.27.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.27.1.tgz",
+ "integrity": "sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw==",
"dev": true,
"requires": {
"@webassemblyjs/ast": "1.7.11",
diff --git a/readme.md b/readme.md
index 5296372..a1c3162 100644
--- a/readme.md
+++ b/readme.md
@@ -6,9 +6,9 @@ This repository contains a modified version of the mainline F-Chat 3.0 client.
## Key Differences
* Ad auto-posting
- * Manage channel's ad settings in "Tab Settings"
- * Automatically repost ads every 11-18 minutes (randomized)
- * Auto-posting can rotate through multiple ads
+ * Manage channel's ad settings via "Tab Settings"
+ * Automatically re-post ads every 11-18 minutes (randomized) for up to 180 minutes
+ * Rotate multiple ads on a single channel
* Link previews
* Hover cursor over any `[url]` to see a preview of it
* Profile
@@ -17,7 +17,7 @@ This repository contains a modified version of the mainline F-Chat 3.0 client.
* Custom kinks are highlighted
* Gender, anthro/human preference, age, and sexual preference are highlighted if compatible or incompatible
* Guestbook, friend, and group counts are visible on tabs
- * Character pictures are expanded inline
+ * Character images are expanded inline
* Cleaner presentation for the side bar details (age, etc.), sorted in most relevant order
* Less informative side bar details (views, contact) are separated and shown in a less prominent way
* Cleaner guestbook view
diff --git a/site/character_page/character_page.vue b/site/character_page/character_page.vue
index ba31892..ce4e275 100644
--- a/site/character_page/character_page.vue
+++ b/site/character_page/character_page.vue
@@ -27,10 +27,10 @@