bokuweb/tsukiakari

View on GitHub
src/browser/src/user-stream.js

Summary

Maintainability
A
2 hrs
Test Coverage
import { ipcMain, powerMonitor } from 'electron';
import T from 'twit';

export const watchUserStreamRequest = () => {
  ipcMain.on('request-userstream-connection', (event, account) => {
    const t = new T({
      consumer_key: global.consumerKey,
      consumer_secret: global.consumerSecret,
      access_token: account.accessToken,
      access_token_secret: account.accessTokenSecret,
      timeout_ms: 60 * 1000,
    });
    try {
      const stream = t.stream('user');
      stream.on('tweet', tweet => {
        event.sender.send('userstream-tweet', tweet);
      });

      stream.on('error', error => {
        console.error(error);
      });

      powerMonitor.on('suspend', () => {
        console.log('suspend!!!');
        if (stream) stream.stop();
      });

      powerMonitor.on('resume', () => {
        console.log('resume');
        if (stream) stream.start();
      });
    } catch (e) {
      console.log('catch error');
      console.log(e);
    }
  });
};