mirror of
https://github.com/GenderDysphoria/GenderDysphoria.fyi.git
synced 2025-01-31 07:16:17 +00:00
Analytics tweaks
This commit is contained in:
parent
3689c12667
commit
39a1aa2f6f
2
.gitignore
vendored
2
.gitignore
vendored
@ -14,7 +14,7 @@ node_modules
|
|||||||
/terraform/*.tfstate*
|
/terraform/*.tfstate*
|
||||||
/terraform/.terraform
|
/terraform/.terraform
|
||||||
/terraform/files/*.zip
|
/terraform/files/*.zip
|
||||||
/analytics/RAW*
|
/analytics/*.gz
|
||||||
/analytics/combined.log
|
/analytics/combined.log
|
||||||
/analytics/database*
|
/analytics/database*
|
||||||
/assets.json
|
/assets.json
|
||||||
|
@ -4,9 +4,10 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"start": "node index.js",
|
||||||
"sync": "aws s3 sync s3://gdbible-analytics/RAW ./RAW",
|
"sync": "aws s3 sync s3://gdbible-analytics/RAW ./RAW",
|
||||||
"empty": "aws s3 rm s3://gdbible-analytics/RAW --recursive",
|
"empty": "aws s3 rm s3://gdbible-analytics/RAW --recursive",
|
||||||
"combine": "find RAW -name '*.gz' -exec cat '{}' ';'| zcat | sed '/^#/ d' > combined.log"
|
"combine": "find RAW_ -name '*.gz' -exec cat '{}' ';' > combined.log"
|
||||||
},
|
},
|
||||||
"author": "Jocelyn Badgley <joc@twipped.com> (http://twipped.com/)",
|
"author": "Jocelyn Badgley <joc@twipped.com> (http://twipped.com/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -15,6 +16,7 @@
|
|||||||
"date-fns": "~2.9.0",
|
"date-fns": "~2.9.0",
|
||||||
"glob-stream": "~6.1.0",
|
"glob-stream": "~6.1.0",
|
||||||
"named-placeholders": "~1.1.2",
|
"named-placeholders": "~1.1.2",
|
||||||
|
"readable-stream": "~3.6.0",
|
||||||
"split2": "~3.2.2",
|
"split2": "~3.2.2",
|
||||||
"sqlite": "~4.0.19",
|
"sqlite": "~4.0.19",
|
||||||
"sqlite3": "~5.0.2",
|
"sqlite3": "~5.0.2",
|
||||||
|
@ -14,7 +14,17 @@ HAVING total > 5;
|
|||||||
|
|
||||||
SELECT referrer_host, count(DISTINCT IFNULL(tid, ip)) as tids, referrer
|
SELECT referrer_host, count(DISTINCT IFNULL(tid, ip)) as tids, referrer
|
||||||
FROM records
|
FROM records
|
||||||
GROUP BY referrer_host;
|
WHERE date(dts) > date('now', '-1 month')
|
||||||
|
AND referrer_host != 'genderdysphoria.fyi'
|
||||||
|
GROUP BY referrer_host
|
||||||
|
ORDER BY tids DESC;
|
||||||
|
|
||||||
|
SELECT referrer_host, count(DISTINCT IFNULL(tid, ip)) as tids, referrer
|
||||||
|
FROM records
|
||||||
|
WHERE date(dts) > date('now', '-1 day')
|
||||||
|
AND INSTR(referrer_host, 'tiktok')
|
||||||
|
GROUP BY referrer_host
|
||||||
|
ORDER BY tids DESC;
|
||||||
|
|
||||||
SELECT COUNT(IFNULL(tid,ip)) as total, referrer
|
SELECT COUNT(IFNULL(tid,ip)) as total, referrer
|
||||||
FROM records
|
FROM records
|
||||||
|
43
analytics/sync.js
Normal file
43
analytics/sync.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
var Readable = require('readable-stream').Readable;
|
||||||
|
|
||||||
|
function identity (_in) {
|
||||||
|
return _in;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a stream for any paged AWS function
|
||||||
|
* you can optionally provide a mapping function
|
||||||
|
* like S3::listObjectsV2()
|
||||||
|
*
|
||||||
|
* @param {function} req - a non executed AWS function
|
||||||
|
* @param {function} fn - a function that selects/maps the results
|
||||||
|
* @param {object} opts - stream options
|
||||||
|
*/
|
||||||
|
function s3PageStream (req, fn, opts) {
|
||||||
|
opts = Object.assign({}, opts, { read, objectMode: true });
|
||||||
|
if (!fn) fn = identity;
|
||||||
|
|
||||||
|
var stream = new Readable(opts);
|
||||||
|
|
||||||
|
return stream;
|
||||||
|
|
||||||
|
function read () {
|
||||||
|
if (!req) return;
|
||||||
|
|
||||||
|
var _req = req;
|
||||||
|
req = null; // poor man's once!
|
||||||
|
_req.send(page_handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
function page_handler (e, data) {
|
||||||
|
if (e) return stream.destroy(e);
|
||||||
|
data.Contents.forEach((obj) => {
|
||||||
|
stream.push(fn(obj));
|
||||||
|
});
|
||||||
|
|
||||||
|
var nextPage = this.hasNextPage() ? this.nextPage() : null;
|
||||||
|
if (nextPage) nextPage.send(page_handler);
|
||||||
|
else stream.push(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user