diff --git a/package.json b/package.json index 5134a8b1..5dd0e067 100644 --- a/package.json +++ b/package.json @@ -16,107 +16,107 @@ "lint-fix": "eslint --fix --ext .js,.vue src test/unit/specs test/e2e/specs" }, "dependencies": { - "@babel/runtime": "^7.7.6", - "@chenfengyuan/vue-qrcode": "^1.0.0", - "@fortawesome/fontawesome-svg-core": "^1.2.32", - "@fortawesome/free-regular-svg-icons": "^5.15.1", - "@fortawesome/free-solid-svg-icons": "^5.15.1", - "@fortawesome/vue-fontawesome": "^2.0.0", - "body-scroll-lock": "^2.6.4", - "chromatism": "^3.0.0", - "cropperjs": "^1.4.3", - "diff": "^3.0.1", - "escape-html": "^1.0.3", - "localforage": "^1.5.0", - "parse-link-header": "^1.0.1", - "phoenix": "^1.3.0", - "portal-vue": "^2.1.4", - "punycode.js": "^2.1.0", - "ruffle-mirror": "^2021.4.10", - "v-click-outside": "^2.1.1", - "vue": "^2.6.11", - "vue-i18n": "^7.3.2", - "vue-router": "^3.0.1", - "vue-template-compiler": "^2.6.11", - "vuelidate": "^0.7.4", - "vuex": "^3.0.1" + "@babel/runtime": "7.7.6", + "@chenfengyuan/vue-qrcode": "1.0.2", + "@fortawesome/fontawesome-svg-core": "1.2.32", + "@fortawesome/free-regular-svg-icons": "5.15.1", + "@fortawesome/free-solid-svg-icons": "5.15.1", + "@fortawesome/vue-fontawesome": "2.0.0", + "body-scroll-lock": "2.6.4", + "chromatism": "3.0.0", + "cropperjs": "1.4.3", + "diff": "3.5.0", + "escape-html": "1.0.3", + "localforage": "1.7.3", + "parse-link-header": "1.0.1", + "phoenix": "1.4.0", + "portal-vue": "2.1.7", + "punycode.js": "2.1.0", + "ruffle-mirror": "2021.4.11", + "v-click-outside": "2.1.5", + "vue": "2.6.11", + "vue-i18n": "7.8.1", + "vue-router": "3.0.2", + "vue-template-compiler": "2.6.11", + "vuelidate": "0.7.4", + "vuex": "3.0.1" }, "devDependencies": { - "@babel/core": "^7.7.5", - "@babel/plugin-transform-runtime": "^7.7.6", - "@babel/preset-env": "^7.7.6", - "@babel/register": "^7.7.4", - "@ungap/event-target": "^0.1.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-preset-jsx": "^1.2.4", - "@vue/test-utils": "^1.0.0-beta.26", - "autoprefixer": "^6.4.0", - "babel-eslint": "^7.0.0", - "babel-loader": "^8.0.6", - "babel-plugin-lodash": "^3.3.4", - "chai": "^3.5.0", - "chalk": "^1.1.3", - "chromedriver": "^87.0.1", - "connect-history-api-fallback": "^1.1.0", - "copy-webpack-plugin": "^6.4.1", - "cross-spawn": "^4.0.2", - "css-loader": "^0.28.0", - "custom-event-polyfill": "^1.0.7", - "eslint": "^5.16.0", - "eslint-config-standard": "^12.0.0", - "eslint-friendly-formatter": "^2.0.5", - "eslint-loader": "^2.1.0", - "eslint-plugin-import": "^2.13.0", - "eslint-plugin-node": "^7.0.0", - "eslint-plugin-promise": "^4.0.0", - "eslint-plugin-standard": "^4.0.0", - "eslint-plugin-vue": "^5.2.2", - "eventsource-polyfill": "^0.9.6", - "express": "^4.13.3", - "file-loader": "^3.0.1", - "function-bind": "^1.0.2", - "html-webpack-plugin": "^3.0.0", - "http-proxy-middleware": "^0.17.2", - "inject-loader": "^2.0.1", - "iso-639-1": "^2.0.3", - "isparta-loader": "^2.0.0", - "json-loader": "^0.5.4", - "karma": "^3.0.0", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.1.0", - "karma-mocha": "^1.2.0", - "karma-mocha-reporter": "^2.2.1", - "karma-sinon-chai": "^2.0.2", - "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.26", - "karma-webpack": "^4.0.0-rc.3", - "lodash": "^4.16.4", - "lolex": "^1.4.0", - "mini-css-extract-plugin": "^0.5.0", - "mocha": "^3.1.0", - "nightwatch": "^0.9.8", - "opn": "^4.0.2", - "ora": "^0.3.0", - "postcss-loader": "^3.0.0", - "raw-loader": "^0.5.1", - "sass": "^1.17.3", + "@babel/core": "7.7.5", + "@babel/plugin-transform-runtime": "7.7.6", + "@babel/preset-env": "7.7.6", + "@babel/register": "7.7.4", + "@ungap/event-target": "0.1.0", + "@vue/babel-helper-vue-jsx-merge-props": "1.2.1", + "@vue/babel-preset-jsx": "1.2.4", + "@vue/test-utils": "1.0.0-beta.28", + "autoprefixer": "6.7.7", + "babel-eslint": "7.2.3", + "babel-loader": "8.0.6", + "babel-plugin-lodash": "3.3.4", + "chai": "3.5.0", + "chalk": "1.1.3", + "chromedriver": "87.0.7", + "connect-history-api-fallback": "1.6.0", + "copy-webpack-plugin": "6.4.1", + "cross-spawn": "4.0.2", + "css-loader": "0.28.11", + "custom-event-polyfill": "1.0.7", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-friendly-formatter": "2.0.7", + "eslint-loader": "2.1.2", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "eslint-plugin-vue": "5.2.3", + "eventsource-polyfill": "0.9.6", + "express": "4.16.4", + "file-loader": "3.0.1", + "function-bind": "1.1.1", + "html-webpack-plugin": "3.2.0", + "http-proxy-middleware": "0.17.4", + "inject-loader": "2.0.1", + "iso-639-1": "2.0.3", + "isparta-loader": "2.0.0", + "json-loader": "0.5.7", + "karma": "3.1.4", + "karma-coverage": "1.1.2", + "karma-firefox-launcher": "1.1.0", + "karma-mocha": "1.3.0", + "karma-mocha-reporter": "2.2.5", + "karma-sinon-chai": "2.0.2", + "karma-sourcemap-loader": "0.3.8", + "karma-spec-reporter": "0.0.33", + "karma-webpack": "4.0.2", + "lodash": "4.17.21", + "lolex": "1.6.0", + "mini-css-extract-plugin": "0.5.0", + "mocha": "3.5.3", + "nightwatch": "0.9.21", + "opn": "4.0.2", + "ora": "0.3.0", + "postcss-loader": "3.0.0", + "raw-loader": "0.5.1", + "sass": "1.20.1", "sass-loader": "git://github.com/webpack-contrib/sass-loader", "selenium-server": "2.53.1", - "semver": "^5.3.0", - "serviceworker-webpack-plugin": "^1.0.0", - "shelljs": "^0.8.4", - "sinon": "^2.1.0", - "sinon-chai": "^2.8.0", - "stylelint": "^13.6.1", - "stylelint-config-standard": "^20.0.0", - "stylelint-rscss": "^0.4.0", - "url-loader": "^1.1.2", - "vue-loader": "^14.0.0", - "vue-style-loader": "^4.0.0", - "webpack": "^4.44.0", - "webpack-dev-middleware": "^3.6.0", - "webpack-hot-middleware": "^2.12.2", - "webpack-merge": "^0.14.1" + "semver": "5.6.0", + "serviceworker-webpack-plugin": "1.0.1", + "shelljs": "0.8.5", + "sinon": "2.4.1", + "sinon-chai": "2.14.0", + "stylelint": "13.6.1", + "stylelint-config-standard": "20.0.0", + "stylelint-rscss": "0.4.0", + "url-loader": "1.1.2", + "vue-loader": "14.2.4", + "vue-style-loader": "4.1.2", + "webpack": "4.46.0", + "webpack-dev-middleware": "3.7.0", + "webpack-hot-middleware": "2.24.3", + "webpack-merge": "0.14.1" }, "engines": { "node": ">= 4.0.0", diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..39a2b6e9 --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ] +} diff --git a/src/boot/after_store.js b/src/boot/after_store.js index cc0c7c5e..c4a0a800 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -115,6 +115,7 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => { copyInstanceOption('nsfwCensorImage') copyInstanceOption('background') copyInstanceOption('hidePostStats') + copyInstanceOption('hideBotIndication') copyInstanceOption('hideUserStats') copyInstanceOption('hideFilteredStatuses') copyInstanceOption('logo') diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue index c4399f30..2a89886d 100644 --- a/src/components/attachment/attachment.vue +++ b/src/components/attachment/attachment.vue @@ -12,6 +12,7 @@ :href="attachment.url" :alt="attachment.description" :title="attachment.description" + @click.prevent > {{ nsfw ? "NSFW / " : "" }}{{ edit ? '' : placeholderName }} diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue index e60a8a85..81e9543b 100644 --- a/src/components/settings_modal/tabs/filtering_tab.vue +++ b/src/components/settings_modal/tabs/filtering_tab.vue @@ -44,9 +44,22 @@ path="hidePostStats" expert="1" > + +
  • + + {{ $t('settings.mute_bot_posts') }} + +
  • +
  • + {{ $t('settings.hide_post_stats') }}
  • +
  • + + {{ $t('settings.hide_bot_indication') }} + +
  • _.url)) @@ -191,7 +197,9 @@ const Status = { // Thread is muted status.thread_muted || // Wordfiltered - this.muteWordHits.length > 0 + this.muteWordHits.length > 0 || + // bot status + (this.muteBotStatuses && this.botStatus && !this.compact) return !this.unmuted && !this.shouldNotMute && reasonsToMute }, userIsMuted () { @@ -293,6 +301,12 @@ const Status = { hidePostStats () { return this.mergedConfig.hidePostStats }, + muteBotStatuses () { + return this.mergedConfig.muteBotStatuses + }, + hideBotIndication () { + return this.mergedConfig.hideBotIndication + }, currentUser () { return this.$store.state.users.currentUser }, diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 3bb29db6..8f51a778 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -77,6 +77,7 @@ @@ -124,6 +125,7 @@ @click.stop.prevent.capture.native="toggleUserExpanded" >
    - +
    diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue index cca75fcb..4ea21506 100644 --- a/src/components/still-image/still-image.vue +++ b/src/components/still-image/still-image.vue @@ -19,6 +19,7 @@ @load="onLoad" @error="onError" > +
    diff --git a/src/components/timeline/timeline_quick_settings.js b/src/components/timeline/timeline_quick_settings.js index 7b4931ce..92d5ac14 100644 --- a/src/components/timeline/timeline_quick_settings.js +++ b/src/components/timeline/timeline_quick_settings.js @@ -53,6 +53,13 @@ const TimelineQuickSettings = { const value = !this.hideMutedPosts this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value }) } + }, + muteBotStatuses: { + get () { return this.mergedConfig.muteBotStatuses }, + set () { + const value = !this.muteBotStatuses + this.$store.dispatch('setOption', { name: 'muteBotStatuses', value }) + } } } } diff --git a/src/components/timeline/timeline_quick_settings.vue b/src/components/timeline/timeline_quick_settings.vue index 98996ebd..4d67e06b 100644 --- a/src/components/timeline/timeline_quick_settings.vue +++ b/src/components/timeline/timeline_quick_settings.vue @@ -39,6 +39,15 @@ class="dropdown-divider" />
    +