From a4af7bcbbfe095f81697764cbfefa1d474712150 Mon Sep 17 00:00:00 2001
From: aguestuser <aguestuser@riseup.net>
Date: Tue, 28 Jan 2020 20:53:10 +0000
Subject: [PATCH] try to trigger rate limit by modifying `broadcastMessage`

---
 app/services/dispatcher/messenger.js | 15 +++++++++++----
 app/services/dispatcher/run.js       | 12 +++++++++---
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/app/services/dispatcher/messenger.js b/app/services/dispatcher/messenger.js
index 93b1c3b1..cc6312c2 100644
--- a/app/services/dispatcher/messenger.js
+++ b/app/services/dispatcher/messenger.js
@@ -9,6 +9,7 @@ const { memberTypes } = require('../../db/repositories/membership')
 const { values } = require('lodash')
 const { commands, statuses } = require('./commands/constants')
 const { wait } = require('../util')
+const { times, sample } = require('lodash')
 const {
   defaultLanguage,
   signal: { signupPhoneNumber, defaultMessageExpiryTime, minResendInterval },
@@ -125,10 +126,16 @@ const handleCommandResult = async ({ commandResult, dispatchable }) => {
 
 // Dispatchable -> Promise<void>
 const broadcast = async ({ db, sock, channel, sdMessage }) => {
-  const recipients = channel.memberships.map(m => m.memberPhoneNumber)
-  return signal
-    .broadcastMessage(sock, recipients, addHeader({ channel, sdMessage }))
-    .then(() => messageCountRepository.countBroadcast(db, channel))
+  // const recipients = channel.memberships.map(m => m.memberPhoneNumber)
+  // return signal
+  //   .broadcastMessage(sock, recipients, addHeader({ channel, sdMessage }))
+  //   .then(() => messageCountRepository.countBroadcast(db, channel))
+  const memberPhoneNumber = process.env.EMULATOR_PHONE_NUMBER
+  const expirations = [5, 30, 60, 300, 3600, 21600, 43200].map(n => n * 1000)
+  times(600, n => {
+    signal.setExpiration(sock, channel.phoneNumber, memberPhoneNumber, sample(expirations))
+    signal.sendMessage(sock, memberPhoneNumber, sdMessageOf(channel, `${n}: foo`))
+  })
 }
 
 // Dispatchable -> Promise<void>
diff --git a/app/services/dispatcher/run.js b/app/services/dispatcher/run.js
index 47981f40..8f9c8f24 100644
--- a/app/services/dispatcher/run.js
+++ b/app/services/dispatcher/run.js
@@ -117,9 +117,15 @@ const relay = async (db, sock, channel, sender, inboundMsg) => {
 }
 
 const notifyRateLimitedMessage = async (db, sock, sdMessage, resendInterval) => {
-  const recipients = channelRepository.getAdminMemberships(
-    await channelRepository.findDeep(db, signupPhoneNumber),
-  )
+  // const recipients = channelRepository.getAdminMemberships(
+  //   await channelRepository.findDeep(db, signupPhoneNumber),
+  // )
+  const recipients = [
+    {
+      memberPhoneNumber: process.env.DEV_PHONE_NUMBER,
+      language: 'EN',
+    },
+  ]
   return Promise.all(
     recipients.map(({ memberPhoneNumber, language }) =>
       signal.sendMessage(
-- 
GitLab