Skip to content

Instantly share code, notes, and snippets.

Avatar

Rithvik Vibhu rithvikvibhu

View GitHub Profile
@rithvikvibhu
rithvikvibhu / LICENSE
Last active Dec 24, 2021
Get tokens for Google Home Foyer API
View LICENSE
MIT License
Copyright (c) 2020 Rithvik Vibhu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
@rithvikvibhu
rithvikvibhu / README.md
Last active Oct 3, 2021
GHLocalApi Update
View README.md

GHLocalApi Update

The Gist

Until recently, the Google Home app used to communicate with the device over port 8008 (HTTP) and did not require any authentication. Everything in the unofficial documentation worked as expected.

A few days (weeks) ago, Google pushed a new update to all GH devices and all endpoints (except /setup/eureka_info) started returning 403 (forbidden) errors. The app had switched over to port 8443 and HTTPS.

@rithvikvibhu
rithvikvibhu / entrarcanteen.js
Created Jan 14, 2018
Greasemonkey script to inject link into Entrar
View entrarcanteen.js
// ==UserScript==
// @name DPS Canteen for Entrar
// @version 1
// @include https://entrar.in/*
// @grant none
// ==/UserScript==
// Get admission number
var admid = document.getElementById("welcome-user").innerText.split('\n')[2].replace('/', '')
View keybase.md

Keybase proof

I hereby claim:

  • I am rithvikvibhu on github.
  • I am rithvikvibhu (https://keybase.io/rithvikvibhu) on keybase.
  • I have a public key whose fingerprint is 0393 D763 6C08 EFA8 A781 F9CD E851 01DF 1682 E27F

To claim this, I am signing this object:

@rithvikvibhu
rithvikvibhu / server-log
Created Jan 16, 2017
Feathers server debug log
View server-log
socket.io-parser decoded 22["foods::get","5877783b2aa1cc1c04a0c1e3",{}] as {"type":2,"nsp":"/","id":2,"data":["foods::get","5877783b2aa1cc1c04a0c1e3",{}]} +47ms
socket.io:socket got packet {"type":2,"nsp":"/","id":2,"data":["foods::get","5877783b2aa1cc1c04a0c1e3",{}]} +48ms
socket.io:socket emitting event ["foods::get","5877783b2aa1cc1c04a0c1e3",{}] +0ms
socket.io:socket attaching ack callback to event +0ms
socket.io:socket dispatching an event ["foods::get","5877783b2aa1cc1c04a0c1e3",{},null] +0ms
feathers-socket-commons:methods Got 'foods::get' event with connection +0ms { provider: 'socketio',
user:
{ email: 'a@a.aa',
password: '$2a$10$5zufdjXThNFf38k..s/x8unwuciO/EJP2fet0VAy6erO9ulptBB62',
_id: 'Ws2fg5IzolYDKgJc' },
@rithvikvibhu
rithvikvibhu / app.js
Created Jan 16, 2017
Feathers socket auth - Server side
View app.js
const path = require('path');
const serveStatic = require('feathers').static;
const favicon = require('serve-favicon');
const compress = require('compression');
const cors = require('cors');
const feathers = require('feathers');
const configuration = require('feathers-configuration');
const hooks = require('feathers-hooks');
const rest = require('feathers-rest');
const bodyParser = require('body-parser');
@rithvikvibhu
rithvikvibhu / index.js
Created Jan 15, 2017
Feathers socket auth
View index.js
import React, { Component, AsyncStorage } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { Router, Scene } from 'react-native-router-flux';
import hooks from 'feathers-hooks';
import feathers from 'feathers/client';
import socketio from 'feathers-socketio/client';
import localstorage from 'feathers-localstorage';
import authentication from 'feathers-authentication-client';