Skip to content

Instantly share code, notes, and snippets.

View modeswitch's full-sized avatar

Alan K modeswitch

  • Brainsights
  • Toronto
View GitHub Profile
@modeswitch
modeswitch / app.js
Created June 19, 2017 20:50
basic auth
const express = require("express");
let app = express();
let basicAuth = require("express-basic-auth");
app.use(basicAuth({
users: {
"brainsights": "donthackus",
},
challenge: true,
#!/usr/bin/node
/* creates a data channel between two peer connections and sends binary messages
* after ~4000 messages it will segfault
* reproducible with nodejs-0.10.31 & wrtc-0.0.29
*/
var servers = null, options = {optional: [{DtlsSrtpKeyAgreement:true}]};
var rx, tx, tx_channel;
/* receiving peer */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function test() {
let local = {};
Components.utils.import("resource://gre/modules/CloudSync.jsm", local);
Components.utils.import("resource:///modules/sessionstore/TabState.jsm", local);
var dgram = require('dgram');
var path = require('path');
var express = require('express');
var EventEmitter = require('events').EventEmitter;
var app = express();
var port = process.env.PORT = 9080;
var router = express.Router();
var socket = dgram.createSocket('udp4');
var scanEvents = new EventEmitter();

Importing the JS module

Cu.import("resource://gre/modules/CloudSync.jsm");
 
console.log(cloudSync); // Module is imported

cloudSync.local

@modeswitch
modeswitch / gist:114c9bd55d800df242a2
Last active June 19, 2020 17:16
Building Node.js for Anddoid

Before you begin

Make sure you have adb installed and that it works. Test this by connecting your phone and running adb devices. In order to proceed past the build stage, your device must be rooted. The device I used is running Cyanogenmod with root enabled for both apps and adb.

Build

Fetch the Android NDK

You'll need to get the Android NDK. I used r8e, which you can get from here: http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2. Make sure you get the x86 version, as the x86_64 version will not help you. Let's call the path where you unpack this NDK_PATH.

Server running at http://0.0.0.0:9000/
/peer.html
/dist/wrtc.js
/peer.js
ws connected
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
ISAC/32000/1 (104)
Warning(webrtcvoiceengine.cc:501): Unexpected codec: ISAC/48000/1 (105)
PCMU/8000/1 (0)
Cu.import("resource://services-cloudsync/main.js");
let service = Cc["@mozilla.org/cloudsync/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
service.whenLoaded().then(() => {
// Cloudsync is ready, do work
CloudSync.Local.id; // local device id
diff --git a/services/cloudsync/CloudSync.js b/services/cloudsync/CloudSync.js
new file mode 100644
index 0000000..8bdff6b
--- /dev/null
+++ b/services/cloudsync/CloudSync.js
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
Filer Roadmap:
* ~~Support Brackets, and other applications~~
* Support for DropBox and other clouds
* Shared cross-domain storage and API
* DropBox clone that isn't in the cloud
* Proxy API for postMessage into an iframe
* JavaScript lib that you include which handles proxy communication
* HTML page that can be put in an iframe to give a common domain (filer.io)
* `<script src="https://filer.io/filesystem.js">` that 3rd parties can use to have a shared filesystem