From 03d3eb1720286c58c10b660e225a2288292ef2b2 Mon Sep 17 00:00:00 2001 From: Twishi Sagwal Date: Mar 19 2018 22:55:55 +0000 Subject: [PATCH 1/3] Added Facebook Tagged Updates of @TheFedoraProject --- diff --git a/config.xml b/config.xml index f65f371..2dc3eb0 100644 --- a/config.xml +++ b/config.xml @@ -56,11 +56,11 @@ - + diff --git a/package.json b/package.json index fff71cb..728be40 100644 --- a/package.json +++ b/package.json @@ -48,14 +48,14 @@ "cordova-plugin-splashscreen": "^3.2.2", "cordova-plugin-statusbar": "^2.1.3", "cordova-plugin-whitelist": "^1.2.2", - "cordova-plugin-x-socialsharing": "^5.1.8", + "cordova-plugin-x-socialsharing": "^5.3.2", "cordova-plugin-x-toast": "^2.5.2", "es6-promise-plugin": "^4.2.2", "fb": "^1.1.1", "ionic-angular": "3.9.2", "ionic-plugin-keyboard": "^2.2.1", "ionicons": "^3.0.0", - "lodash": "^4.14.0", + "lodash": "^4.17.5", "moment": "^2.14.1", "moment-timezone": "^0.5.5", "query-string": "^4.2.2", @@ -66,6 +66,7 @@ }, "devDependencies": { "@ionic/app-scripts": "3.1.8", + "@types/lodash": "4.14.105", "typescript": "2.4.2" }, "cordova": { diff --git a/src/pages/social/social.ts b/src/pages/social/social.ts index 4af236f..06f0986 100644 --- a/src/pages/social/social.ts +++ b/src/pages/social/social.ts @@ -20,18 +20,22 @@ export class SocialPage { // TODO: Refactor, we are not supposed to use `any`, rather, ww should define an // interface Post { content:string, date:Date } private posts:Array; + private tagged_updates:Array; private tweets:Array; private updates:Array; private USER:any; - + constructor(private browser:Browser, private fb:FB, private tw:Tw, private socialSharing:SocialSharing) { this.posts = []; + this.tagged_updates = []; this.tweets = []; this.updates = []; + this.USER = { FB: 'fedoraqa', + FB2: 'TheFedoraProject', TW: 'fedora_qa', }; } @@ -48,6 +52,13 @@ export class SocialPage { this.mergeUpdates(); }).catch((err) => console.log(err + "kanika")); + this.fb + .getTaggedPosts(this.USER.FB2) + .then((posts:Array) => { + this.tagged_updates = posts; + this.mergeUpdates(); + }).catch((err) => console.log(err + "twishi")); + this.tw .getTimelineTweets(this.USER.TW) .then((tweets:Array) => { @@ -58,7 +69,7 @@ export class SocialPage { mergeUpdates() { // TODO: Merge as per ascending order of timestamps? - this.updates = [ ...this.posts, ...this.tweets ]; + this.updates = [ ...this.posts, ...this.tagged_updates, ...this.tweets ]; } openUpdate(event) { diff --git a/src/providers/fb/fb.ts b/src/providers/fb/fb.ts index a593233..e78c461 100644 --- a/src/providers/fb/fb.ts +++ b/src/providers/fb/fb.ts @@ -10,6 +10,12 @@ const FB_CONFIG = { version: 'v2.6' }; +const FB_CONFIG2 = { + accessToken: 'ACCESS_TOKEN_FOR_PAGE_THEFEDORAPROJECT', + xfbml: true, + version: 'v2.6' +}; + /* Generated class for the Fb provider. @@ -19,8 +25,11 @@ const FB_CONFIG = { @Injectable() export class FB { private fb:Facebook; + private fb2:Facebook; + constructor() { this.fb = new Facebook(FB_CONFIG); + this.fb2 = new Facebook(FB_CONFIG2); } api(urlParts) { @@ -34,6 +43,18 @@ export class FB { }); }); } + + api2(urlParts) { + return new Promise((resolve, reject) => { + this.fb.api(urlParts.join('/'), res => { + if (!res || res.error) { + return reject(res); + } else { + return resolve(res); + } + }); + }); + } getPagePosts(page) { return new Promise((resolve, reject) => { @@ -57,4 +78,27 @@ export class FB { }).catch(reject); }); } + + getTaggedPosts(page) { + return new Promise((resolve, reject) => { + this.api([page, 'tagged']).then((res:any) => { + var posts = _.compact(_.map(res.data, p => { + var post = { + id: p.id, + link: 'https://facebook.com/' + p.id, + content: p.message, + origin: 'facebook', + }; + + if (_.isEmpty(post.content)) { + return null; + } else { + return post; + } + })); + + return resolve(posts); + }).catch(reject); + }); + } } From 66e79324b0284351541ce0c27c062d94b716a14f Mon Sep 17 00:00:00 2001 From: Twishi Sagwal Date: Apr 16 2018 14:41:00 +0000 Subject: [PATCH 2/3] Added Method of Fetching Tweets --- diff --git a/src/cron/package-lock.json b/src/cron/package-lock.json new file mode 100644 index 0000000..5d48b1f --- /dev/null +++ b/src/cron/package-lock.json @@ -0,0 +1,401 @@ +{ + "name": "cron", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.1" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "request": { + "version": "2.85.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", + "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.1" + } + }, + "sshpk": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "twit": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/twit/-/twit-2.2.9.tgz", + "integrity": "sha1-ZxBXT4FkHaoDeWobS457eNPXVnY=", + "requires": { + "bluebird": "3.5.1", + "mime": "1.6.0", + "request": "2.85.0" + } + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + } + } +} diff --git a/src/cron/package.json b/src/cron/package.json new file mode 100644 index 0000000..af401fc --- /dev/null +++ b/src/cron/package.json @@ -0,0 +1,14 @@ +{ + "name": "cron", + "version": "1.0.0", + "description": "", + "main": "twitter.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "twit": "^2.2.9" + } +} diff --git a/src/cron/twitter.js b/src/cron/twitter.js new file mode 100644 index 0000000..ad5a483 --- /dev/null +++ b/src/cron/twitter.js @@ -0,0 +1,74 @@ +var Twit = require('twit'); + +var T = new Twit({ + consumer_key: 'cuLxLMfC5jOoEcMnH2qvUL83j' + , consumer_secret: 'WLAWlJ4KUQ2lQ7W5BPDZWFQTB0KuHfSoBX8hUPBBUlI9Mif2sa' + , access_token: '716300138340192256-jDYaMzu8nKtOpNBX69nVMxIR2j2dNWX' + , access_token_secret: 'X2kQlFaTIsl8oLLXf99PADO5SeXdodED58zGm8Jy3aLkq' +}) + +var options = { screen_name: 'fedora', + count: 200 }; + + function popular(array) { + if (array.length == 0) return [null, 0]; + var n = max = 1, maxNum = array[0], pv, cv; + + for(var i = 0; i < array.length; i++, pv = array[i-1], cv = array[i]) { + if (pv == cv) { + if (++n >= max) { + max = n; maxNum = cv; + } + } else n = 1; + } + + return [maxNum, max]; +}; + + + + + + + +var hashtags = []; +var hashtags_count = []; +T.get('statuses/user_timeline', options , function(err, data) { + for (var i = 0; i < data.length ; i++) { + t = data[i].text; + n = t.match(/#[A-Za-z0-9]+/mg); + + + if(n != null){ + for(a in n){ + if(data.hasOwnProperty(a)) { + var value = n[a]; + var c = hashtags.indexOf(value); + if(c != -1){ + hashtags_count[c] += 1; + }else{ + hashtags.push(value); + hashtags_count.push(1); + } + } + } + } + } + +}).then(function(){ + console.log(hashtags); + console.log(hashtags_count); + var hashtags_count_2 = hashtags_count.concat(); + hashtags_count_2.sort(function(a, b){return b-a}); + + max_p = []; + max_pi = []; + for(i=0;i<10;i++){ + console.log(hashtags_count.indexOf(hashtags_count_2[i])); + item_index = hashtags_count.indexOf(hashtags_count_2[i]); + max_pi.push(item_index) + max_p.push(hashtags[item_index]); + } + console.log(max_p); +}); + From 060cd62721f1bec733b7b2fc9fe28e6895ca9e1a Mon Sep 17 00:00:00 2001 From: Twishi Sagwal Date: Apr 16 2018 14:42:14 +0000 Subject: [PATCH 3/3] Added Method of Fetching Popular hastags on Fedora Twitter Handle --- diff --git a/src/cron/twitter.js b/src/cron/twitter.js index ad5a483..fba3a58 100644 --- a/src/cron/twitter.js +++ b/src/cron/twitter.js @@ -56,15 +56,15 @@ T.get('statuses/user_timeline', options , function(err, data) { } }).then(function(){ - console.log(hashtags); - console.log(hashtags_count); + //console.log(hashtags); + //console.log(hashtags_count); var hashtags_count_2 = hashtags_count.concat(); hashtags_count_2.sort(function(a, b){return b-a}); max_p = []; max_pi = []; for(i=0;i<10;i++){ - console.log(hashtags_count.indexOf(hashtags_count_2[i])); + //console.log(hashtags_count.indexOf(hashtags_count_2[i])); item_index = hashtags_count.indexOf(hashtags_count_2[i]); max_pi.push(item_index) max_p.push(hashtags[item_index]);