Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/components/NewMessageForm/NewMessageForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,15 @@ export default {
* Sends the new message
*/
async handleSubmit() {
if (OC.debug && this.parsedText.startsWith('/spam ')) {
const pattern = /^\/spam (\d+) messages$/i
const match = pattern.exec(this.parsedText)
if (match) {
await this.handleSubmitSpam(match[1])
return
}
}

if (this.parsedText !== '') {
const temporaryMessage = await this.$store.dispatch('createTemporaryMessage', { text: this.parsedText, token: this.token })
// FIXME: move "addTemporaryMessage" into "postNewMessage" as it's a pre-requisite anyway ?
Expand All @@ -354,6 +363,23 @@ export default {
}
},

async handleSubmitSpam(numberOfMessages) {
console.debug('Sending ' + numberOfMessages + ' lorem ipsum messages')
for (let i = 0; i < numberOfMessages; i++) {
const randomNumber = parseInt(Math.random() * 500, 10)
console.debug('[' + i + '/' + numberOfMessages + '] Sleeping ' + randomNumber + 'ms')
await this.sleep(randomNumber)

const loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.'
this.parsedText = loremIpsum.substr(0, 25 + randomNumber)
await this.handleSubmit()
}
},

sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
},

handleRetryMessage(temporaryMessageId) {
if (this.parsedText === '') {
const temporaryMessage = this.$store.getters.message(this.token, temporaryMessageId)
Expand Down