├── .gitattributes ├── .gitignore ├── .gitlab-ci.yml ├── CONTRIBUTING.md ├── CREDITS.md ├── LICENSE ├── README.es.md ├── README.md ├── backend ├── .README.md ├── api.py ├── app.py ├── celery.sh ├── celery_worker.py ├── factories │ ├── __init__.py │ ├── _celery.py │ ├── apikeys_default.json │ ├── application.py │ ├── celery_config.py │ ├── configuration.py │ ├── fontcheat.py │ └── iKy_functions.py └── modules │ ├── __init__.py │ ├── darkpass │ ├── __init__.py │ └── darkpass_tasks.py │ ├── dorks │ ├── __init__.py │ └── dorks_tasks.py │ ├── emailrep │ ├── __init__.py │ └── emailrep_tasks.py │ ├── fullcontact │ ├── __init__.py │ └── fullcontact_tasks.py │ ├── ghostproject │ ├── __init__.py │ └── ghostproject_tasks.py │ ├── github │ ├── __init__.py │ └── github_tasks.py │ ├── gitlab │ ├── __init__.py │ └── gitlab_tasks.py │ ├── holehe │ ├── __init__.py │ └── holehe_tasks.py │ ├── instagram │ ├── __init__.py │ └── instagram_tasks.py │ ├── keybase │ ├── __init__.py │ └── keybase_tasks.py │ ├── leaklookup │ ├── __init__.py │ └── leaklookup_tasks.py │ ├── leaks │ ├── __init__.py │ └── leaks_tasks.py │ ├── linkedin │ ├── __init__.py │ └── linkedin_tasks.py │ ├── mastodon │ ├── __init__.py │ └── mastodon_tasks.py │ ├── peopledatalabs │ ├── __init__.py │ └── peopledatalabs_tasks.py │ ├── psbdmp │ ├── __init__.py │ └── psbdmp_tasks.py │ ├── reddit │ ├── __init__.py │ ├── all-locations.txt │ └── reddit_tasks.py │ ├── search │ ├── __init__.py │ └── search_tasks.py │ ├── sherlock │ ├── data_sherlock.json │ └── sherlock_tasks.py │ ├── skype │ ├── __init__.py │ └── skype_tasks.py │ ├── socialscan │ ├── __init__.py │ └── socialscan_tasks.py │ ├── spotify │ ├── __init__.py │ └── spotify_tasks.py │ ├── tiktok │ ├── __init__.py │ └── tiktok_tasks.py │ ├── tinder │ ├── __init__.py │ └── tinder_tasks.py │ ├── tweetiment │ ├── __init__.py │ └── tweetiment_tasks.py │ ├── twint │ ├── __init__.py │ └── twint_tasks.py │ ├── twitch │ ├── __init__.py │ └── twitch_tasks.py │ ├── twitter │ ├── __init__.py │ └── twitter_tasks.py │ ├── twitter_comparison │ ├── __init__.py │ ├── twitter_comp_tasks.py │ └── twitter_info_tasks.py │ ├── usersearch │ ├── __init__.py │ └── usersearch_tasks.py │ └── venmo │ ├── __init__.py │ └── venmo_tasks.py ├── docker-compose.yml ├── frontend ├── angular.json ├── browserslist ├── package-lock.json ├── package.json ├── src │ ├── app │ │ ├── @core │ │ │ ├── core.module.ts │ │ │ ├── data │ │ │ │ ├── .gitkeep │ │ │ │ └── data-gather-info.service.ts │ │ │ ├── module-import-guard.ts │ │ │ └── utils │ │ │ │ ├── .gitkeep │ │ │ │ ├── analytics.service.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layout.service.ts │ │ │ │ ├── player.service.ts │ │ │ │ ├── seo.service.ts │ │ │ │ └── state.service.ts │ │ ├── @theme │ │ │ ├── components │ │ │ │ ├── footer │ │ │ │ │ ├── footer.component.scss │ │ │ │ │ └── footer.component.ts │ │ │ │ ├── header │ │ │ │ │ ├── header.component.html │ │ │ │ │ ├── header.component.scss │ │ │ │ │ └── header.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── search-input │ │ │ │ │ ├── search-input.component.scss │ │ │ │ │ └── search-input.component.ts │ │ │ │ └── tiny-mce │ │ │ │ │ └── tiny-mce.component.ts │ │ │ ├── directives │ │ │ │ └── .gitkeep │ │ │ ├── layouts │ │ │ │ ├── iky │ │ │ │ │ ├── iky.layout.scss │ │ │ │ │ └── iky.layout.ts │ │ │ │ └── index.ts │ │ │ ├── pipes │ │ │ │ ├── .gitkeep │ │ │ │ ├── capitalize.pipe.ts │ │ │ │ ├── index.ts │ │ │ │ ├── number-with-commas.pipe.ts │ │ │ │ ├── plural.pipe.ts │ │ │ │ ├── round.pipe.ts │ │ │ │ └── timing.pipe.ts │ │ │ ├── styles │ │ │ │ ├── _layout.scss │ │ │ │ ├── _overrides.scss │ │ │ │ ├── pace.theme.scss │ │ │ │ ├── styles.scss │ │ │ │ ├── theme.cosmic.ts │ │ │ │ ├── theme.iKy.ts │ │ │ │ └── themes.scss │ │ │ └── theme.module.ts │ │ ├── app-routing.module.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ └── pages │ │ │ ├── apikeys │ │ │ ├── apikeys.component.html │ │ │ ├── apikeys.component.scss │ │ │ ├── apikeys.component.ts │ │ │ └── apikeys.module.ts │ │ │ ├── comparison │ │ │ ├── comparison.component.html │ │ │ ├── comparison.component.scss │ │ │ ├── comparison.component.ts │ │ │ ├── comparison.module.ts │ │ │ └── twitterC │ │ │ │ ├── status-card │ │ │ │ ├── status-card.component.scss │ │ │ │ └── status-card.component.ts │ │ │ │ ├── twitterC-approval │ │ │ │ ├── twitter-approval.component.html │ │ │ │ ├── twitter-approval.component.scss │ │ │ │ └── twitter-approval.component.ts │ │ │ │ ├── twitterC-hashtag │ │ │ │ ├── twitter-hashtag.component.html │ │ │ │ ├── twitter-hashtag.component.scss │ │ │ │ └── twitter-hashtag.component.ts │ │ │ │ ├── twitterC-hour │ │ │ │ ├── twitter-hour.component.html │ │ │ │ ├── twitter-hour.component.scss │ │ │ │ └── twitter-hour.component.ts │ │ │ │ ├── twitterC-list │ │ │ │ ├── twitter-list.component.html │ │ │ │ ├── twitter-list.component.scss │ │ │ │ └── twitter-list.component.ts │ │ │ │ ├── twitterC-popularity │ │ │ │ ├── twitter-popularity.component.html │ │ │ │ ├── twitter-popularity.component.scss │ │ │ │ └── twitter-popularity.component.ts │ │ │ │ ├── twitterC-resume │ │ │ │ ├── twitter-resume.component.html │ │ │ │ ├── twitter-resume.component.scss │ │ │ │ └── twitter-resume.component.ts │ │ │ │ ├── twitterC-social │ │ │ │ ├── twitter-social.component.html │ │ │ │ ├── twitter-social.component.scss │ │ │ │ └── twitter-social.component.ts │ │ │ │ ├── twitterC-users │ │ │ │ ├── twitter-users.component.html │ │ │ │ ├── twitter-users.component.scss │ │ │ │ └── twitter-users.component.ts │ │ │ │ └── twitterC-week │ │ │ │ ├── twitter-week.component.html │ │ │ │ ├── twitter-week.component.scss │ │ │ │ └── twitter-week.component.ts │ │ │ ├── gatherer │ │ │ ├── darkpass │ │ │ │ └── darkpass-list │ │ │ │ │ ├── darkpass-list.component.html │ │ │ │ │ ├── darkpass-list.component.scss │ │ │ │ │ └── darkpass-list.component.ts │ │ │ ├── dorks │ │ │ │ ├── dorks-email │ │ │ │ │ ├── dorks-email.component.html │ │ │ │ │ ├── dorks-email.component.scss │ │ │ │ │ └── dorks-email.component.ts │ │ │ │ ├── dorks-hashtag │ │ │ │ │ ├── dorks-hashtag.component.html │ │ │ │ │ ├── dorks-hashtag.component.scss │ │ │ │ │ └── dorks-hashtag.component.ts │ │ │ │ ├── dorks-list-raw │ │ │ │ │ ├── dorks-list-raw.component.html │ │ │ │ │ ├── dorks-list-raw.component.scss │ │ │ │ │ └── dorks-list-raw.component.ts │ │ │ │ ├── dorks-list │ │ │ │ │ ├── dorks-list.component.html │ │ │ │ │ ├── dorks-list.component.scss │ │ │ │ │ └── dorks-list.component.ts │ │ │ │ ├── dorks-mention │ │ │ │ │ ├── dorks-mentions.component.html │ │ │ │ │ ├── dorks-mentions.component.scss │ │ │ │ │ └── dorks-mentions.component.ts │ │ │ │ ├── dorks-names │ │ │ │ │ ├── dorks-names.component.html │ │ │ │ │ ├── dorks-names.component.scss │ │ │ │ │ └── dorks-names.component.ts │ │ │ │ ├── dorks-searches │ │ │ │ │ ├── dorks-searches.component.html │ │ │ │ │ ├── dorks-searches.component.scss │ │ │ │ │ └── dorks-searches.component.ts │ │ │ │ ├── dorks-social │ │ │ │ │ ├── dorks-social.component.html │ │ │ │ │ ├── dorks-social.component.scss │ │ │ │ │ └── dorks-social.component.ts │ │ │ │ └── dorks-usernames │ │ │ │ │ ├── dorks-usernames.component.html │ │ │ │ │ ├── dorks-usernames.component.scss │ │ │ │ │ └── dorks-usernames.component.ts │ │ │ ├── emailrep │ │ │ │ ├── emailrep-info │ │ │ │ │ ├── emailrep-info.component.html │ │ │ │ │ ├── emailrep-info.component.scss │ │ │ │ │ └── emailrep-info.component.ts │ │ │ │ └── emailrep-social │ │ │ │ │ ├── emailrep-social.component.html │ │ │ │ │ ├── emailrep-social.component.scss │ │ │ │ │ └── emailrep-social.component.ts │ │ │ ├── error │ │ │ │ ├── error-graphs.component.html │ │ │ │ ├── error-graphs.component.scss │ │ │ │ └── error-graphs.component.ts │ │ │ ├── fullcontact │ │ │ │ ├── fullcontact-cloud │ │ │ │ │ ├── fullcontact-cloud.component.html │ │ │ │ │ ├── fullcontact-cloud.component.scss │ │ │ │ │ └── fullcontact-cloud.component.ts │ │ │ │ ├── fullcontact-graphs │ │ │ │ │ ├── fullcontact-graphs.component.html │ │ │ │ │ ├── fullcontact-graphs.component.scss │ │ │ │ │ └── fullcontact-graphs.component.ts │ │ │ │ └── fullcontact-scramble │ │ │ │ │ ├── fullcontact-scramble.component.html │ │ │ │ │ ├── fullcontact-scramble.component.scss │ │ │ │ │ └── fullcontact-scramble.component.ts │ │ │ ├── gatherer.component.html │ │ │ ├── gatherer.component.scss │ │ │ ├── gatherer.component.ts │ │ │ ├── gatherer.module.ts │ │ │ ├── github │ │ │ │ ├── github-calendar │ │ │ │ │ ├── github-calendar.component.html │ │ │ │ │ ├── github-calendar.component.scss │ │ │ │ │ └── github-calendar.component.ts │ │ │ │ └── github-graphs │ │ │ │ │ ├── github-graphs.component.html │ │ │ │ │ ├── github-graphs.component.scss │ │ │ │ │ └── github-graphs.component.ts │ │ │ ├── holehe │ │ │ │ ├── holehe-graphs │ │ │ │ │ ├── holehe-graphs.component.html │ │ │ │ │ ├── holehe-graphs.component.scss │ │ │ │ │ └── holehe-graphs.component.ts │ │ │ │ └── holehe-list │ │ │ │ │ ├── holehe-list.component.html │ │ │ │ │ ├── holehe-list.component.scss │ │ │ │ │ └── holehe-list.component.ts │ │ │ ├── instagram │ │ │ │ ├── instagram-graphs │ │ │ │ │ ├── instagram-graphs.component.html │ │ │ │ │ ├── instagram-graphs.component.scss │ │ │ │ │ └── instagram-graphs.component.ts │ │ │ │ ├── instagram-hashtag │ │ │ │ │ ├── instagram-hashtag.component.html │ │ │ │ │ ├── instagram-hashtag.component.scss │ │ │ │ │ └── instagram-hashtag.component.ts │ │ │ │ ├── instagram-hour │ │ │ │ │ ├── instagram-hour.component.html │ │ │ │ │ ├── instagram-hour.component.scss │ │ │ │ │ └── instagram-hour.component.ts │ │ │ │ ├── instagram-list │ │ │ │ │ ├── instagram-list.component.html │ │ │ │ │ ├── instagram-list.component.scss │ │ │ │ │ └── instagram-list.component.ts │ │ │ │ ├── instagram-map │ │ │ │ │ ├── instagram-map.component.html │ │ │ │ │ ├── instagram-map.component.scss │ │ │ │ │ ├── instagram-map.component.ts │ │ │ │ │ └── instagram-map.service.ts │ │ │ │ ├── instagram-mediatype │ │ │ │ │ ├── instagram-mediatype.component.html │ │ │ │ │ ├── instagram-mediatype.component.scss │ │ │ │ │ └── instagram-mediatype.component.ts │ │ │ │ ├── instagram-mention │ │ │ │ │ ├── instagram-mention.component.html │ │ │ │ │ ├── instagram-mention.component.scss │ │ │ │ │ └── instagram-mention.component.ts │ │ │ │ ├── instagram-photos │ │ │ │ │ ├── instagram-photos.component.html │ │ │ │ │ ├── instagram-photos.component.scss │ │ │ │ │ └── instagram-photos.component.ts │ │ │ │ ├── instagram-posts │ │ │ │ │ ├── instagram-posts.component.html │ │ │ │ │ ├── instagram-posts.component.scss │ │ │ │ │ └── instagram-posts.component.ts │ │ │ │ ├── instagram-tagged │ │ │ │ │ ├── instagram-tagged.component.html │ │ │ │ │ ├── instagram-tagged.component.scss │ │ │ │ │ └── instagram-tagged.component.ts │ │ │ │ └── instagram-week │ │ │ │ │ ├── instagram-week.component.html │ │ │ │ │ ├── instagram-week.component.scss │ │ │ │ │ └── instagram-week.component.ts │ │ │ ├── keybase │ │ │ │ ├── keybase-devices │ │ │ │ │ ├── keybase-devices.component.html │ │ │ │ │ ├── keybase-devices.component.scss │ │ │ │ │ └── keybase-devices.component.ts │ │ │ │ ├── keybase-graph │ │ │ │ │ ├── keybase-graph.component.html │ │ │ │ │ ├── keybase-graph.component.scss │ │ │ │ │ └── keybase-graph.component.ts │ │ │ │ └── keybase-social │ │ │ │ │ ├── keybase-social.component.html │ │ │ │ │ ├── keybase-social.component.scss │ │ │ │ │ └── keybase-social.component.ts │ │ │ ├── leak │ │ │ │ └── leak-graphs │ │ │ │ │ ├── leak-graphs.component.html │ │ │ │ │ ├── leak-graphs.component.scss │ │ │ │ │ └── leak-graphs.component.ts │ │ │ ├── leaklookup │ │ │ │ └── leaklookup-email │ │ │ │ │ ├── leaklookup-email.component.html │ │ │ │ │ ├── leaklookup-email.component.scss │ │ │ │ │ └── leaklookup-email.component.ts │ │ │ ├── linkedin │ │ │ │ ├── linkedin-bubble │ │ │ │ │ ├── linkedin-bubble.component.html │ │ │ │ │ ├── linkedin-bubble.component.scss │ │ │ │ │ └── linkedin-bubble.component.ts │ │ │ │ ├── linkedin-certs │ │ │ │ │ ├── linkedin-certs.component.html │ │ │ │ │ ├── linkedin-certs.component.scss │ │ │ │ │ └── linkedin-certs.component.ts │ │ │ │ ├── linkedin-graphs │ │ │ │ │ ├── linkedin-graphs.component.html │ │ │ │ │ ├── linkedin-graphs.component.scss │ │ │ │ │ └── linkedin-graphs.component.ts │ │ │ │ └── linkedin-pos │ │ │ │ │ ├── linkedin-pos.component.html │ │ │ │ │ ├── linkedin-pos.component.scss │ │ │ │ │ └── linkedin-pos.component.ts │ │ │ ├── mastodon │ │ │ │ ├── mastodon-graph │ │ │ │ │ ├── mastodon-graph.component.html │ │ │ │ │ ├── mastodon-graph.component.scss │ │ │ │ │ └── mastodon-graph.component.ts │ │ │ │ ├── mastodon-list │ │ │ │ │ ├── mastodon-list.component.html │ │ │ │ │ ├── mastodon-list.component.scss │ │ │ │ │ └── mastodon-list.component.ts │ │ │ │ └── mastodon-social │ │ │ │ │ ├── mastodon-social.component.html │ │ │ │ │ ├── mastodon-social.component.scss │ │ │ │ │ └── mastodon-social.component.ts │ │ │ ├── peopledatalabs │ │ │ │ ├── peopledatalabs-graphs │ │ │ │ │ ├── peopledatalabs-graphs.component.html │ │ │ │ │ ├── peopledatalabs-graphs.component.scss │ │ │ │ │ └── peopledatalabs-graphs.component.ts │ │ │ │ └── peopledatalabs-social │ │ │ │ │ ├── peopledatalabs-social.component.html │ │ │ │ │ ├── peopledatalabs-social.component.scss │ │ │ │ │ └── peopledatalabs-social.component.ts │ │ │ ├── psbdump │ │ │ │ ├── psbdmp-leak │ │ │ │ │ ├── psbdmp-leak.component.html │ │ │ │ │ ├── psbdmp-leak.component.scss │ │ │ │ │ └── psbdmp-leak.component.ts │ │ │ │ └── psbdmp-list │ │ │ │ │ ├── psbdmp-list.component.html │ │ │ │ │ ├── psbdmp-list.component.scss │ │ │ │ │ └── psbdmp-list.component.ts │ │ │ ├── reddit │ │ │ │ ├── reddit-bubble │ │ │ │ │ ├── reddit-bubble.component.html │ │ │ │ │ ├── reddit-bubble.component.scss │ │ │ │ │ └── reddit-bubble.component.ts │ │ │ │ ├── reddit-hour │ │ │ │ │ ├── reddit-hour.component.html │ │ │ │ │ ├── reddit-hour.component.scss │ │ │ │ │ └── reddit-hour.component.ts │ │ │ │ ├── reddit-social │ │ │ │ │ ├── reddit-social.component.html │ │ │ │ │ ├── reddit-social.component.scss │ │ │ │ │ └── reddit-social.component.ts │ │ │ │ └── reddit-week │ │ │ │ │ ├── reddit-week.component.html │ │ │ │ │ ├── reddit-week.component.scss │ │ │ │ │ └── reddit-week.component.ts │ │ │ ├── search │ │ │ │ ├── search-email │ │ │ │ │ ├── search-email.component.html │ │ │ │ │ ├── search-email.component.scss │ │ │ │ │ └── search-email.component.ts │ │ │ │ ├── search-hashtag │ │ │ │ │ ├── search-hashtag.component.html │ │ │ │ │ ├── search-hashtag.component.scss │ │ │ │ │ └── search-hashtag.component.ts │ │ │ │ ├── search-list-raw │ │ │ │ │ ├── search-list-raw.component.html │ │ │ │ │ ├── search-list-raw.component.scss │ │ │ │ │ └── search-list-raw.component.ts │ │ │ │ ├── search-list │ │ │ │ │ ├── search-list.component.html │ │ │ │ │ ├── search-list.component.scss │ │ │ │ │ └── search-list.component.ts │ │ │ │ ├── search-mention │ │ │ │ │ ├── search-mentions.component.html │ │ │ │ │ ├── search-mentions.component.scss │ │ │ │ │ └── search-mentions.component.ts │ │ │ │ ├── search-names │ │ │ │ │ ├── search-names.component.html │ │ │ │ │ ├── search-names.component.scss │ │ │ │ │ └── search-names.component.ts │ │ │ │ ├── search-searches │ │ │ │ │ ├── search-searches.component.html │ │ │ │ │ ├── search-searches.component.scss │ │ │ │ │ └── search-searches.component.ts │ │ │ │ ├── search-social │ │ │ │ │ ├── search-social.component.html │ │ │ │ │ ├── search-social.component.scss │ │ │ │ │ └── search-social.component.ts │ │ │ │ └── search-usernames │ │ │ │ │ ├── search-usernames.component.html │ │ │ │ │ ├── search-usernames.component.scss │ │ │ │ │ └── search-usernames.component.ts │ │ │ ├── sherlock │ │ │ │ ├── sherlock-graphs │ │ │ │ │ ├── sherlock-graphs.component.html │ │ │ │ │ ├── sherlock-graphs.component.scss │ │ │ │ │ └── sherlock-graphs.component.ts │ │ │ │ └── sherlock-list │ │ │ │ │ ├── sherlock-list.component.html │ │ │ │ │ ├── sherlock-list.component.scss │ │ │ │ │ └── sherlock-list.component.ts │ │ │ ├── skype │ │ │ │ ├── skype.component.html │ │ │ │ ├── skype.component.scss │ │ │ │ └── skype.component.ts │ │ │ ├── socialscan │ │ │ │ ├── socialscan-email │ │ │ │ │ ├── socialscan-email.component.html │ │ │ │ │ ├── socialscan-email.component.scss │ │ │ │ │ └── socialscan-email.component.ts │ │ │ │ └── socialscan-user │ │ │ │ │ ├── socialscan-user.component.html │ │ │ │ │ ├── socialscan-user.component.scss │ │ │ │ │ └── socialscan-user.component.ts │ │ │ ├── spotify │ │ │ │ ├── spotify-autors │ │ │ │ │ ├── spotify-autors.component.html │ │ │ │ │ ├── spotify-autors.component.scss │ │ │ │ │ └── spotify-autors.component.ts │ │ │ │ ├── spotify-lang │ │ │ │ │ ├── spotify-lang.component.html │ │ │ │ │ ├── spotify-lang.component.scss │ │ │ │ │ └── spotify-lang.component.ts │ │ │ │ ├── spotify-playlists │ │ │ │ │ ├── spotify-playlists.component.html │ │ │ │ │ ├── spotify-playlists.component.scss │ │ │ │ │ └── spotify-playlists.component.ts │ │ │ │ ├── spotify-social │ │ │ │ │ ├── spotify-social.component.html │ │ │ │ │ ├── spotify-social.component.scss │ │ │ │ │ └── spotify-social.component.ts │ │ │ │ └── spotify-words │ │ │ │ │ ├── spotify-words.component.html │ │ │ │ │ ├── spotify-words.component.scss │ │ │ │ │ └── spotify-words.component.ts │ │ │ ├── taskexec │ │ │ │ ├── taskexec.component.html │ │ │ │ ├── taskexec.component.scss │ │ │ │ └── taskexec.component.ts │ │ │ ├── tiktok │ │ │ │ ├── tiktok-graphs │ │ │ │ │ ├── tiktok-graphs.component.html │ │ │ │ │ ├── tiktok-graphs.component.scss │ │ │ │ │ └── tiktok-graphs.component.ts │ │ │ │ ├── tiktok-hashtag │ │ │ │ │ ├── tiktok-hashtag.component.html │ │ │ │ │ ├── tiktok-hashtag.component.scss │ │ │ │ │ └── tiktok-hashtag.component.ts │ │ │ │ ├── tiktok-hour │ │ │ │ │ ├── tiktok-hour.component.html │ │ │ │ │ ├── tiktok-hour.component.scss │ │ │ │ │ └── tiktok-hour.component.ts │ │ │ │ ├── tiktok-posts │ │ │ │ │ ├── tiktok-posts.component.html │ │ │ │ │ ├── tiktok-posts.component.scss │ │ │ │ │ └── tiktok-posts.component.ts │ │ │ │ ├── tiktok-resume │ │ │ │ │ ├── tiktok-resume.component.html │ │ │ │ │ ├── tiktok-resume.component.scss │ │ │ │ │ └── tiktok-resume.component.ts │ │ │ │ ├── tiktok-timeline │ │ │ │ │ ├── tiktok-timeline.component.html │ │ │ │ │ ├── tiktok-timeline.component.scss │ │ │ │ │ └── tiktok-timeline.component.ts │ │ │ │ ├── tiktok-videos │ │ │ │ │ ├── tiktok-videos.component.html │ │ │ │ │ ├── tiktok-videos.component.scss │ │ │ │ │ └── tiktok-videos.component.ts │ │ │ │ └── tiktok-week │ │ │ │ │ ├── tiktok-week.component.html │ │ │ │ │ ├── tiktok-week.component.scss │ │ │ │ │ └── tiktok-week.component.ts │ │ │ ├── tinder │ │ │ │ └── tinder-graphs │ │ │ │ │ ├── tinder-graphs.component.html │ │ │ │ │ ├── tinder-graphs.component.scss │ │ │ │ │ └── tinder-graphs.component.ts │ │ │ ├── tweetiment │ │ │ │ └── tweetiment-lines │ │ │ │ │ ├── tweetiment-lines.component.html │ │ │ │ │ ├── tweetiment-lines.component.scss │ │ │ │ │ └── tweetiment-lines.component.ts │ │ │ ├── twitch │ │ │ │ ├── twitch-duration │ │ │ │ │ ├── twitch-duration.component.html │ │ │ │ │ ├── twitch-duration.component.scss │ │ │ │ │ └── twitch-duration.component.ts │ │ │ │ ├── twitch-hour │ │ │ │ │ ├── twitch-hour.component.html │ │ │ │ │ ├── twitch-hour.component.scss │ │ │ │ │ └── twitch-hour.component.ts │ │ │ │ ├── twitch-list │ │ │ │ │ ├── twitch-list.component.html │ │ │ │ │ ├── twitch-list.component.scss │ │ │ │ │ └── twitch-list.component.ts │ │ │ │ ├── twitch-social │ │ │ │ │ ├── twitch-social.component.html │ │ │ │ │ ├── twitch-social.component.scss │ │ │ │ │ └── twitch-social.component.ts │ │ │ │ ├── twitch-timeline │ │ │ │ │ ├── twitch-timeline.component.html │ │ │ │ │ ├── twitch-timeline.component.scss │ │ │ │ │ └── twitch-timeline.component.ts │ │ │ │ └── twitch-week │ │ │ │ │ ├── twitch-week.component.html │ │ │ │ │ ├── twitch-week.component.scss │ │ │ │ │ └── twitch-week.component.ts │ │ │ ├── twitter │ │ │ │ ├── twitter-approval │ │ │ │ │ ├── twitter-approval.component.html │ │ │ │ │ ├── twitter-approval.component.scss │ │ │ │ │ └── twitter-approval.component.ts │ │ │ │ ├── twitter-hashtag │ │ │ │ │ ├── twitter-hashtag.component.html │ │ │ │ │ ├── twitter-hashtag.component.scss │ │ │ │ │ └── twitter-hashtag.component.ts │ │ │ │ ├── twitter-hour │ │ │ │ │ ├── twitter-hour.component.html │ │ │ │ │ ├── twitter-hour.component.scss │ │ │ │ │ └── twitter-hour.component.ts │ │ │ │ ├── twitter-list │ │ │ │ │ ├── twitter-list.component.html │ │ │ │ │ ├── twitter-list.component.scss │ │ │ │ │ └── twitter-list.component.ts │ │ │ │ ├── twitter-popularity │ │ │ │ │ ├── twitter-popularity.component.html │ │ │ │ │ ├── twitter-popularity.component.scss │ │ │ │ │ └── twitter-popularity.component.ts │ │ │ │ ├── twitter-resume │ │ │ │ │ ├── twitter-resume.component.html │ │ │ │ │ ├── twitter-resume.component.scss │ │ │ │ │ └── twitter-resume.component.ts │ │ │ │ ├── twitter-social │ │ │ │ │ ├── twitter-social.component.html │ │ │ │ │ ├── twitter-social.component.scss │ │ │ │ │ └── twitter-social.component.ts │ │ │ │ ├── twitter-source │ │ │ │ │ ├── twitter-source.component.html │ │ │ │ │ ├── twitter-source.component.scss │ │ │ │ │ └── twitter-source.component.ts │ │ │ │ ├── twitter-timeline │ │ │ │ │ ├── twitter-timeline.component.html │ │ │ │ │ ├── twitter-timeline.component.scss │ │ │ │ │ └── twitter-timeline.component.ts │ │ │ │ ├── twitter-twvsrt │ │ │ │ │ ├── twitter-twvsrt.component.html │ │ │ │ │ ├── twitter-twvsrt.component.scss │ │ │ │ │ └── twitter-twvsrt.component.ts │ │ │ │ ├── twitter-users │ │ │ │ │ ├── twitter-users.component.html │ │ │ │ │ ├── twitter-users.component.scss │ │ │ │ │ └── twitter-users.component.ts │ │ │ │ └── twitter-week │ │ │ │ │ ├── twitter-week.component.html │ │ │ │ │ ├── twitter-week.component.scss │ │ │ │ │ └── twitter-week.component.ts │ │ │ ├── validation │ │ │ │ ├── validation-filter.component.scss │ │ │ │ └── validation-filter.component.ts │ │ │ └── venmo │ │ │ │ ├── venmo-friends │ │ │ │ ├── venmo-friends.component.html │ │ │ │ ├── venmo-friends.component.scss │ │ │ │ └── venmo-friends.component.ts │ │ │ │ ├── venmo-graphs │ │ │ │ ├── venmo-graphs.component.html │ │ │ │ ├── venmo-graphs.component.scss │ │ │ │ └── venmo-graphs.component.ts │ │ │ │ └── venmo-trans │ │ │ │ ├── venmo-trans.component.html │ │ │ │ ├── venmo-trans.component.scss │ │ │ │ └── venmo-trans.component.ts │ │ │ ├── miscellaneous │ │ │ ├── miscellaneous-routing.module.ts │ │ │ ├── miscellaneous.component.ts │ │ │ ├── miscellaneous.module.ts │ │ │ └── not-found │ │ │ │ ├── not-found.component.html │ │ │ │ ├── not-found.component.scss │ │ │ │ └── not-found.component.ts │ │ │ ├── pages-menu.ts │ │ │ ├── pages-routing.module.ts │ │ │ ├── pages.component.scss │ │ │ ├── pages.component.ts │ │ │ ├── pages.module.ts │ │ │ ├── principal │ │ │ ├── principal.component.html │ │ │ ├── principal.component.scss │ │ │ ├── principal.component.ts │ │ │ └── principal.module.ts │ │ │ ├── profile │ │ │ ├── profile-data │ │ │ │ ├── profile-data.component.html │ │ │ │ ├── profile-data.component.scss │ │ │ │ └── profile-data.component.ts │ │ │ ├── profile-map │ │ │ │ ├── profile-map.component.html │ │ │ │ ├── profile-map.component.scss │ │ │ │ ├── profile-map.component.ts │ │ │ │ └── profile-map.service.ts │ │ │ ├── profile-photos │ │ │ │ ├── profile-photos.component.html │ │ │ │ ├── profile-photos.component.scss │ │ │ │ └── profile-photos.component.ts │ │ │ ├── profile-social │ │ │ │ ├── profile-social.component.html │ │ │ │ ├── profile-social.component.scss │ │ │ │ └── profile-social.component.ts │ │ │ ├── profile.component.html │ │ │ ├── profile.component.scss │ │ │ ├── profile.component.ts │ │ │ └── profile.module.ts │ │ │ ├── shared │ │ │ ├── bubble │ │ │ │ ├── bubble.component.html │ │ │ │ ├── bubble.component.scss │ │ │ │ └── bubble.component.ts │ │ │ ├── circle-social │ │ │ │ ├── circle-social.component.html │ │ │ │ ├── circle-social.component.scss │ │ │ │ └── circle-social.component.ts │ │ │ ├── graphs │ │ │ │ ├── graphs.component.html │ │ │ │ ├── graphs.component.scss │ │ │ │ └── graphs.component.ts │ │ │ ├── modal-dialog │ │ │ │ ├── modal-dialog.component.html │ │ │ │ ├── modal-dialog.component.scss │ │ │ │ └── modal-dialog.component.ts │ │ │ ├── pipe │ │ │ │ └── safe.pipe.ts │ │ │ ├── shared.module.ts │ │ │ ├── simple-graphs │ │ │ │ ├── simple-graphs.component.html │ │ │ │ ├── simple-graphs.component.scss │ │ │ │ └── simple-graphs.component.ts │ │ │ ├── text-cloud │ │ │ │ ├── text-cloud.component.html │ │ │ │ ├── text-cloud.component.scss │ │ │ │ └── text-cloud.component.ts │ │ │ └── text-scramble │ │ │ │ ├── text-scramble.component.html │ │ │ │ ├── text-scramble.component.scss │ │ │ │ └── text-scramble.component.ts │ │ │ └── timeline │ │ │ ├── timeline.component.html │ │ │ ├── timeline.component.scss │ │ │ ├── timeline.component.ts │ │ │ └── timeline.module.ts │ ├── assets │ │ ├── .gitkeep │ │ ├── font │ │ │ ├── exo │ │ │ │ ├── Exo-ExtraLight.otf │ │ │ │ └── Exo-Thin.otf │ │ │ ├── fonts.scss │ │ │ └── roboto │ │ │ │ ├── Roboto-Light-normal.js │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ └── Roboto-Thin.ttf │ │ ├── images │ │ │ ├── Emiliano.png │ │ │ ├── Giba.gif │ │ │ ├── Giba.png │ │ │ ├── Ikyv2.png │ │ │ ├── Kali.png │ │ │ ├── Screens1000.png │ │ │ ├── Ubuntu1804.png │ │ │ ├── back1.jpg │ │ │ ├── back1.png │ │ │ ├── back2.jpg │ │ │ ├── back2.png │ │ │ ├── back3.png │ │ │ ├── ban.png │ │ │ ├── blur-bg.jpg │ │ │ ├── h1.jpg │ │ │ ├── h1.png │ │ │ ├── h2.png │ │ │ ├── h3.png │ │ │ ├── iKy-Logo.png │ │ │ ├── iKyEko15.png │ │ │ ├── iKySol.gif │ │ │ ├── iKySol3.gif │ │ │ ├── ikyDemoV1.png │ │ │ ├── ikyDemov0.png │ │ │ ├── map-marker-icon-default.png │ │ │ ├── side1.png │ │ │ └── ubuntu1604.png │ │ ├── leaflet-countries │ │ │ └── countries.geo.json │ │ └── map │ │ │ └── world.json │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── favicon.png │ ├── index.html │ ├── main.ts │ ├── polyfills.ts │ ├── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── typings.d.ts ├── tsconfig.json └── tslint.json ├── install ├── docker │ ├── backend │ │ ├── Dockerfile │ │ └── supervisor.conf │ └── frontend │ │ └── Dockerfile └── vagrant │ ├── Vagrantfile │ ├── checks.sh │ ├── provision.sh │ ├── scripts │ ├── status_app.sh │ ├── status_celery.sh │ ├── status_frontend.sh │ └── status_redis.sh │ ├── start_iKy.sh │ └── stop_iKy.sh └── requirements.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | *.css linguist-detectable=false 2 | *.js linguist-detectable=true 3 | *.ts linguist-detectable=false 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ##Main Branch 2 | The idea is that the main branch is iKy. All branches converge in iKy branch. 3 | The previous version (Frontend in AngularJS) is in iKy-v1 branch and we left master branch there too. 4 | 5 | ##Branch names 6 | - *WIP/featurename* - For Work In Progress, stuff that will not end soon 7 | - *FEAT/featurename* - For feature that will be added or expanded 8 | - *BUG/bugname* - For Bug 9 | - *JUNK/junkname* - For experimental actions 10 | - *ISSUE/issuenumber* - Obvious 11 | - *REF/refname* - For violent refactoring 12 | - *IMP/improvename* - For improvements 13 | - *MISC/miscname* - For anything else (don't abuse) 14 | 15 | ##Commits names 16 | - *[ADD] message* - For add 17 | - *[MOD] message* - For modify 18 | - *[REM] message* - For remove 19 | - *[REF] message* - For moderate refactoring 20 | - *[HOT] message* - For hot fix in master 21 | - *[FIX] message* - For fix, but it is not HOT and it's throught another branch, not master 22 | - *[MRG] message* - For Merge 23 | - *[DOC] message* - For documentation 24 | 25 | Contributions of any kind are welcome! 26 | -------------------------------------------------------------------------------- /backend/celery.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # celery worker -A celery_worker.celery --loglevel=DEBUG 3 | celery -A celery_worker.celery worker --loglevel=INFO 4 | -------------------------------------------------------------------------------- /backend/celery_worker.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | from factories._celery import create_celery 3 | from factories.application import create_application 4 | 5 | celery = create_celery(create_application()) 6 | -------------------------------------------------------------------------------- /backend/factories/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /backend/factories/_celery.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | from celery import Celery 3 | 4 | 5 | def create_celery(application): 6 | """ 7 | Configures celery instance from application, using it's config 8 | :param application: Flask application instance 9 | :return: Celery instance 10 | """ 11 | celery = Celery(application.import_name, 12 | broker=application.config['CELERY_BROKER_URL']) 13 | celery.conf.update(application.config) 14 | TaskBase = celery.Task 15 | 16 | class ContextTask(TaskBase): 17 | abstract = True 18 | 19 | def __call__(self, *args, **kwargs): 20 | with application.app_context(): 21 | return TaskBase.__call__(self, *args, **kwargs) 22 | 23 | celery.Task = ContextTask 24 | return celery 25 | -------------------------------------------------------------------------------- /backend/factories/application.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | from flask import Flask 3 | from flask_cors import CORS 4 | from .configuration import get_config 5 | from api import home 6 | 7 | 8 | def create_application(): 9 | config = get_config() 10 | app = Flask(__name__) 11 | CORS(app) 12 | app.config.from_object(config) 13 | app.register_blueprint(home) 14 | return app 15 | -------------------------------------------------------------------------------- /backend/factories/fontcheat.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | 4 | import requests 5 | import re 6 | import os 7 | import json 8 | import fontawesome as fa 9 | 10 | # from requests.packages.urllib3.exceptions import InsecureRequestWarning 11 | # requests.packages.urllib3.disable_warnings(InsecureRequestWarning) 12 | 13 | 14 | def fontawesome_cheat_5(): 15 | """ Get icon name for fontawesome 5. This function is for compatibility """ 16 | fonta = {} 17 | return fonta 18 | 19 | 20 | def search_icon_5(name, font_list): 21 | if (name.lower() in fa.icons.keys()): 22 | return 'fab fa-' + name.lower() 23 | else: 24 | return None 25 | 26 | 27 | if __name__ == "__main__": 28 | font_list = fontawesome_cheat_5() 29 | print(font_list) 30 | print(search_icon_5("Facebook", font_list)) 31 | -------------------------------------------------------------------------------- /backend/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/__init__.py -------------------------------------------------------------------------------- /backend/modules/darkpass/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/darkpass/__init__.py -------------------------------------------------------------------------------- /backend/modules/dorks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/dorks/__init__.py -------------------------------------------------------------------------------- /backend/modules/emailrep/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/emailrep/__init__.py -------------------------------------------------------------------------------- /backend/modules/fullcontact/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/fullcontact/__init__.py -------------------------------------------------------------------------------- /backend/modules/ghostproject/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/ghostproject/__init__.py -------------------------------------------------------------------------------- /backend/modules/github/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/github/__init__.py -------------------------------------------------------------------------------- /backend/modules/gitlab/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/gitlab/__init__.py -------------------------------------------------------------------------------- /backend/modules/holehe/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/holehe/__init__.py -------------------------------------------------------------------------------- /backend/modules/instagram/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/instagram/__init__.py -------------------------------------------------------------------------------- /backend/modules/keybase/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/keybase/__init__.py -------------------------------------------------------------------------------- /backend/modules/leaklookup/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/leaklookup/__init__.py -------------------------------------------------------------------------------- /backend/modules/leaks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/leaks/__init__.py -------------------------------------------------------------------------------- /backend/modules/linkedin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/linkedin/__init__.py -------------------------------------------------------------------------------- /backend/modules/mastodon/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/mastodon/__init__.py -------------------------------------------------------------------------------- /backend/modules/peopledatalabs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/peopledatalabs/__init__.py -------------------------------------------------------------------------------- /backend/modules/psbdmp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/psbdmp/__init__.py -------------------------------------------------------------------------------- /backend/modules/reddit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/reddit/__init__.py -------------------------------------------------------------------------------- /backend/modules/search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/search/__init__.py -------------------------------------------------------------------------------- /backend/modules/skype/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/skype/__init__.py -------------------------------------------------------------------------------- /backend/modules/socialscan/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/socialscan/__init__.py -------------------------------------------------------------------------------- /backend/modules/spotify/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/spotify/__init__.py -------------------------------------------------------------------------------- /backend/modules/tiktok/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/tiktok/__init__.py -------------------------------------------------------------------------------- /backend/modules/tinder/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/tinder/__init__.py -------------------------------------------------------------------------------- /backend/modules/tweetiment/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/tweetiment/__init__.py -------------------------------------------------------------------------------- /backend/modules/twint/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/twint/__init__.py -------------------------------------------------------------------------------- /backend/modules/twitch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/twitch/__init__.py -------------------------------------------------------------------------------- /backend/modules/twitter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/twitter/__init__.py -------------------------------------------------------------------------------- /backend/modules/twitter_comparison/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/twitter_comparison/__init__.py -------------------------------------------------------------------------------- /backend/modules/usersearch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/usersearch/__init__.py -------------------------------------------------------------------------------- /backend/modules/venmo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/backend/modules/venmo/__init__.py -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | frontend: 4 | build: 5 | context: . 6 | dockerfile: ./install/docker/frontend/Dockerfile 7 | ports: 8 | - "4200:4200" 9 | backend: 10 | build: 11 | context: . 12 | dockerfile: ./install/docker/backend/Dockerfile 13 | ports: 14 | - "5000:5000" 15 | links: 16 | - "redis:redis" 17 | redis: 18 | image: redis 19 | ports: 20 | - "6379:6379" 21 | -------------------------------------------------------------------------------- /frontend/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | IE 11 13 | -------------------------------------------------------------------------------- /frontend/src/app/@core/data/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/app/@core/data/.gitkeep -------------------------------------------------------------------------------- /frontend/src/app/@core/module-import-guard.ts: -------------------------------------------------------------------------------- 1 | export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) { 2 | if (parentModule) { 3 | throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/@core/utils/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/app/@core/utils/.gitkeep -------------------------------------------------------------------------------- /frontend/src/app/@core/utils/analytics.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { NavigationEnd, Router } from '@angular/router'; 3 | import { Location } from '@angular/common'; 4 | import { filter } from 'rxjs/operators'; 5 | 6 | declare const ga: any; 7 | 8 | @Injectable() 9 | export class AnalyticsService { 10 | private enabled: boolean; 11 | 12 | constructor(private location: Location, private router: Router) { 13 | this.enabled = false; 14 | } 15 | 16 | trackPageViews() { 17 | if (this.enabled) { 18 | this.router.events.pipe( 19 | filter((event) => event instanceof NavigationEnd), 20 | ) 21 | .subscribe(() => { 22 | ga('send', {hitType: 'pageview', page: this.location.path()}); 23 | }); 24 | } 25 | } 26 | 27 | trackEvent(eventName: string) { 28 | if (this.enabled) { 29 | ga('send', 'event', eventName); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/@core/utils/index.ts: -------------------------------------------------------------------------------- 1 | import { LayoutService } from './layout.service'; 2 | import { AnalyticsService } from './analytics.service'; 3 | import { PlayerService } from './player.service'; 4 | import { StateService } from './state.service'; 5 | import { SeoService } from './seo.service'; 6 | 7 | export { 8 | LayoutService, 9 | AnalyticsService, 10 | PlayerService, 11 | SeoService, 12 | StateService, 13 | }; 14 | -------------------------------------------------------------------------------- /frontend/src/app/@core/utils/layout.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Observable, Subject } from 'rxjs'; 3 | import { delay, share } from 'rxjs/operators'; 4 | 5 | @Injectable() 6 | export class LayoutService { 7 | 8 | protected layoutSize$ = new Subject(); 9 | 10 | changeLayoutSize() { 11 | this.layoutSize$.next(); 12 | } 13 | 14 | onChangeLayoutSize(): Observable { 15 | return this.layoutSize$.pipe( 16 | share(), 17 | delay(1), 18 | ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/footer/footer.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../styles/themes'; 2 | @import '~@nebular/theme/styles/global/breakpoints'; 3 | @import '~bootstrap/scss/mixins/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | width: 100%; 7 | display: flex; 8 | justify-content: space-between; 9 | align-items: center; 10 | 11 | .socials { 12 | font-size: 2rem; 13 | 14 | a { 15 | padding: 0.4rem; 16 | color: nb-theme(text-basic-color); 17 | transition: color ease-out 0.1s; 18 | 19 | &:hover { 20 | color: nb-theme(text-basic-color); 21 | } 22 | } 23 | } 24 | 25 | @include media-breakpoint-down(is) { 26 | .socials { 27 | font-size: 1.5rem; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-footer', 5 | styleUrls: ['./footer.component.scss'], 6 | template: ` 7 | I Know You - 2020 8 |
9 | 10 |
11 |
12 | 13 |
14 |
15 | 16 |
17 |
18 | 19 |
20 |
21 | 22 |
23 | `, 24 | }) 25 | export class FooterComponent { 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/header/header.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | 3 | import { NbMenuService, NbSidebarService } from '@nebular/theme'; 4 | // import { LayoutService } from '../../../@core/data/layout.service'; 5 | import { LayoutService } from '../../../@core/utils'; 6 | 7 | @Component({ 8 | selector: 'ngx-header', 9 | styleUrls: ['./header.component.scss'], 10 | templateUrl: './header.component.html', 11 | }) 12 | export class HeaderComponent implements OnInit { 13 | 14 | @Input() position = 'normal'; 15 | 16 | user: any; 17 | userMenu = [{ title: 'Profile' }, { title: 'Log out' }]; 18 | 19 | constructor(private sidebarService: NbSidebarService, 20 | private menuService: NbMenuService, 21 | private layoutService: LayoutService) { 22 | } 23 | 24 | ngOnInit() { 25 | console.log("Header Component"); 26 | } 27 | 28 | toggleSidebar(): boolean { 29 | this.sidebarService.toggle(true, 'menu-sidebar'); 30 | this.layoutService.changeLayoutSize(); 31 | 32 | return false; 33 | } 34 | 35 | toggleSettings(): boolean { 36 | this.sidebarService.toggle(false, 'settings-sidebar'); 37 | 38 | return false; 39 | } 40 | 41 | goToHome() { 42 | this.menuService.navigateHome(); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './header/header.component'; 2 | export * from './footer/footer.component'; 3 | export * from './search-input/search-input.component'; 4 | export * from './tiny-mce/tiny-mce.component'; 5 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/search-input/search-input.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | align-items: center; 4 | 5 | i.control-icon { 6 | &::before { 7 | font-size: 2.3rem; 8 | } 9 | 10 | &:hover { 11 | cursor: pointer; 12 | } 13 | } 14 | 15 | input { 16 | border: none; 17 | outline: none; 18 | margin-left: 1rem; 19 | width: 15rem; 20 | transition: width 0.2s ease; 21 | 22 | &.hidden { 23 | width: 0; 24 | margin: 0; 25 | } 26 | } 27 | 28 | ::ng-deep search-input { 29 | input { 30 | background: transparent; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/search-input/search-input.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, ElementRef, EventEmitter, Output, ViewChild } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-search-input', 5 | styleUrls: ['./search-input.component.scss'], 6 | template: ` 7 | 9 | 14 | `, 15 | }) 16 | export class SearchInputComponent { 17 | @ViewChild('input', { static: true }) input: ElementRef; 18 | 19 | @Output() search: EventEmitter = new EventEmitter(); 20 | 21 | isInputShown = false; 22 | 23 | showInput() { 24 | this.isInputShown = true; 25 | this.input.nativeElement.focus(); 26 | } 27 | 28 | hideInput() { 29 | this.isInputShown = false; 30 | } 31 | 32 | onInput(val: string) { 33 | this.search.emit(val); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/components/tiny-mce/tiny-mce.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnDestroy, AfterViewInit, Output, EventEmitter, ElementRef } from '@angular/core'; 2 | import { LocationStrategy } from '@angular/common'; 3 | 4 | @Component({ 5 | selector: 'ngx-tiny-mce', 6 | template: '', 7 | }) 8 | export class TinyMCEComponent implements OnDestroy, AfterViewInit { 9 | 10 | @Output() editorKeyup = new EventEmitter(); 11 | 12 | editor: any; 13 | 14 | constructor( 15 | private host: ElementRef, 16 | private locationStrategy: LocationStrategy, 17 | ) { } 18 | 19 | ngAfterViewInit() { 20 | tinymce.init({ 21 | target: this.host.nativeElement, 22 | plugins: ['link', 'paste', 'table'], 23 | skin_url: `${this.locationStrategy.getBaseHref()}assets/skins/lightgray`, 24 | setup: editor => { 25 | this.editor = editor; 26 | editor.on('keyup', () => { 27 | this.editorKeyup.emit(editor.getContent()); 28 | }); 29 | }, 30 | height: '320', 31 | }); 32 | } 33 | 34 | ngOnDestroy() { 35 | tinymce.remove(this.editor); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/directives/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/app/@theme/directives/.gitkeep -------------------------------------------------------------------------------- /frontend/src/app/@theme/layouts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './iky/iky.layout'; 2 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/app/@theme/pipes/.gitkeep -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/capitalize.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'ngxCapitalize' }) 4 | export class CapitalizePipe implements PipeTransform { 5 | 6 | transform(input: string): string { 7 | return input && input.length 8 | ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase()) 9 | : input; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './capitalize.pipe'; 2 | export * from './plural.pipe'; 3 | export * from './round.pipe'; 4 | export * from './timing.pipe'; 5 | export * from './number-with-commas.pipe'; 6 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/number-with-commas.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'ngxNumberWithCommas' }) 4 | export class NumberWithCommasPipe implements PipeTransform { 5 | 6 | transform(input: number): string { 7 | return new Intl.NumberFormat().format(input); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/plural.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'ngxPlural' }) 4 | export class PluralPipe implements PipeTransform { 5 | 6 | transform(input: number, label: string, pluralLabel: string = ''): string { 7 | input = input || 0; 8 | return input === 1 9 | ? `${input} ${label}` 10 | : pluralLabel 11 | ? `${input} ${pluralLabel}` 12 | : `${input} ${label}s`; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/round.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'ngxRound' }) 4 | export class RoundPipe implements PipeTransform { 5 | 6 | transform(input: number): number { 7 | return Math.round(input); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/pipes/timing.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'timing' }) 4 | export class TimingPipe implements PipeTransform { 5 | transform(time: number): string { 6 | if (time) { 7 | const minutes = Math.floor(time / 60); 8 | const seconds = Math.floor(time % 60); 9 | return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`; 10 | } 11 | 12 | return '00:00'; 13 | } 14 | 15 | private initZero(time: number): string { 16 | return time < 10 ? '0' : ''; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/styles/_layout.scss: -------------------------------------------------------------------------------- 1 | @mixin ngx-layout() { 2 | @include media-breakpoint-down(is) { 3 | .row { 4 | margin-left: -10px; 5 | margin-right: -10px; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/styles/_overrides.scss: -------------------------------------------------------------------------------- 1 | @import './themes'; 2 | 3 | @mixin nb-overrides() { 4 | nb-select.size-medium button { 5 | padding: 0.4375rem 2.2rem 0.4375rem 1.125rem !important; 6 | 7 | nb-icon { 8 | right: 0.41rem !important; 9 | } 10 | } 11 | 12 | .layout-container { 13 | background-color: #016565 !important; 14 | background-image: url('/assets/images/blur-bg.jpg') !important; 15 | background-repeat: no-repeat !important; 16 | background-position: center center !important; 17 | background-attachment: fixed !important; 18 | } 19 | 20 | nb-sidebar-header { 21 | background-color: rgba(0, 0, 0, 0.5) !important; 22 | } 23 | nb-sidebar .scrollable { 24 | background-color: rgba(0, 0, 0, 0.5) !important; 25 | } 26 | 27 | .form-control { 28 | color: #00f9a6; 29 | } 30 | 31 | .form-control:focus { 32 | box-shadow: 0 0 0 0.2rem rgba(0, 249, 166, 0.25); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/styles/pace.theme.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | 7 | @mixin ngx-pace-theme() { 8 | 9 | .pace .pace-progress { 10 | background: nb-theme(color-primary-default); 11 | } 12 | 13 | .pace .pace-progress-inner { 14 | box-shadow: 0 0 10px nb-theme(color-primary-default), 0 0 5px nb-theme(color-primary-default); 15 | } 16 | 17 | .pace .pace-activity { 18 | display: none; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/styles/styles.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap'); 2 | 3 | // themes - our custom or/and out of the box themes 4 | @import 'themes'; 5 | 6 | // framework component themes (styles tied to theme variables) 7 | @import '~@nebular/theme/styles/globals'; 8 | @import '~@nebular/auth/styles/all'; 9 | 10 | @import '~bootstrap/scss/functions'; 11 | @import '~bootstrap/scss/variables'; 12 | @import '~bootstrap/scss/mixins'; 13 | @import '~bootstrap/scss/grid'; 14 | 15 | // loading progress bar theme 16 | @import './pace.theme'; 17 | 18 | @import './layout'; 19 | @import './overrides'; 20 | 21 | // install the framework and custom global styles 22 | @include nb-install() { 23 | 24 | // framework global styles 25 | @include nb-theme-global(); 26 | @include nb-auth-global(); 27 | 28 | @include ngx-layout(); 29 | // loading progress bar 30 | @include ngx-pace-theme(); 31 | 32 | @include nb-overrides(); 33 | }; 34 | -------------------------------------------------------------------------------- /frontend/src/app/@theme/styles/theme.iKy.ts: -------------------------------------------------------------------------------- 1 | import { NbJSThemeOptions, COSMIC_THEME as baseTheme } from '@nebular/theme'; 2 | 3 | const baseThemeVariables = baseTheme.variables; 4 | 5 | export const IKY_THEME = { 6 | name: 'iKy', 7 | base: 'iKy', 8 | variables: { 9 | }, 10 | } as NbJSThemeOptions; 11 | -------------------------------------------------------------------------------- /frontend/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | import { Component, OnInit } from '@angular/core'; 7 | import { AnalyticsService } from './@core/utils/analytics.service'; 8 | import { SeoService } from './@core/utils/seo.service'; 9 | 10 | @Component({ 11 | selector: 'ngx-app', 12 | template: '', 13 | }) 14 | export class AppComponent implements OnInit { 15 | 16 | constructor(private analytics: AnalyticsService, private seoService: SeoService) { 17 | } 18 | 19 | ngOnInit(): void { 20 | this.analytics.trackPageViews(); 21 | this.seoService.trackCanonicalChanges(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /frontend/src/app/pages/apikeys/apikeys.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Ng2SmartTableModule } from 'ng2-smart-table'; 3 | // import { SmartTableService } from '../../@core/data/smart-table.service'; 4 | 5 | import { NbBadgeModule, 6 | NbButtonModule, 7 | NbTooltipModule, 8 | NbCardModule } from '@nebular/theme'; 9 | 10 | import { ThemeModule } from '../../@theme/theme.module'; 11 | import { ApiKeysComponent } from './apikeys.component'; 12 | 13 | import { NbDialogModule } from '@nebular/theme'; 14 | // import { NbDialogModule, NbWindowModule } from '@nebular/theme'; 15 | 16 | @NgModule({ 17 | imports: [ 18 | ThemeModule, 19 | NbBadgeModule, 20 | NbCardModule, 21 | NbButtonModule, 22 | NbTooltipModule, 23 | Ng2SmartTableModule, 24 | NbDialogModule.forChild(), 25 | ], 26 | declarations: [ 27 | ApiKeysComponent, 28 | ], 29 | // providers: [ 30 | // SmartTableService, 31 | // ], 32 | }) 33 | export class ApiKeysModule { } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/status-card/status-card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-status-card', 5 | styleUrls: ['./status-card.component.scss'], 6 | template: ` 7 | 8 |
9 |
10 | 11 |
12 |
13 | 14 |
15 |
{{ title }}
16 |
17 |
18 | `, 19 | }) 20 | export class StatusCardComponent { 21 | 22 | @Input() title: string; 23 | @Input() type: string; 24 | } 25 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-approval/twitter-approval.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-hashtag/twitter-hashtag.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | TWITTER Hashtags 4 |
5 |
6 | 7 |
8 | 9 |
10 |
11 |
12 | 13 | 14 | 15 | 16 | TWITTER Hashtag 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-hashtag/twitter-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-hashtag/twitter-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, AfterViewInit, TemplateRef } from '@angular/core'; 2 | // import { ViewChild, ElementRef } from '@angular/core'; 3 | import { NbDialogService } from '@nebular/theme'; 4 | 5 | @Component({ 6 | selector: 'ngx-twitter-hashtag', 7 | templateUrl: './twitter-hashtag.component.html', 8 | styleUrls: ['./twitter-hashtag.component.scss'], 9 | }) 10 | export class TwitterCHashtagComponent implements OnInit, AfterViewInit { 11 | // @ViewChild('nbCardTwitterHashtag', { static: false }) private cardContainer: ElementRef; 12 | @Input() private data: any; 13 | private twitterHashtag: any; 14 | 15 | public card: any; 16 | public width: number; 17 | public height: number; 18 | 19 | constructor(private dialogService: NbDialogService) {} 20 | 21 | ngOnInit() { 22 | this.twitterHashtag = this.data.result[4].graphic[0].hashtag; 23 | console.log('Twitter Hashtag Component'); 24 | console.log(this.twitterHashtag); 25 | } 26 | 27 | ngAfterViewInit() { 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-hour/twitter-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-list/twitter-list.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-popularity/twitter-popularity.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-resume/twitter-resume.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-social/twitter-social.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | TWITTER Social 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | TWITTER Social 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-social/twitter-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-social/twitter-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, AfterViewInit, TemplateRef } from '@angular/core'; 2 | // import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 3 | import { NbDialogService } from '@nebular/theme'; 4 | 5 | @Component({ 6 | selector: 'ngx-twitter-social', 7 | templateUrl: './twitter-social.component.html', 8 | styleUrls: ['./twitter-social.component.scss'], 9 | }) 10 | export class TwitterCSocialComponent implements OnInit, AfterViewInit { 11 | // @ViewChild('nbCardTwitterSocial', { static: false }) private cardContainer: ElementRef; 12 | @Input() private data: any; 13 | public twitterSocial: any; 14 | 15 | public card: any; 16 | public width: number; 17 | public height: number; 18 | 19 | constructor(private dialogService: NbDialogService) {} 20 | 21 | ngOnInit() { 22 | this.twitterSocial = this.data.result[4].graphic[0].social; 23 | } 24 | 25 | ngAfterViewInit() { 26 | 27 | console.log('Twitter Social Component'); 28 | console.log(this.twitterSocial); 29 | } 30 | 31 | openDialog(dialog: TemplateRef) { 32 | this.dialogService.open(dialog); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-users/twitter-users.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | TWITTER Mentions 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | TWITTER Mentions 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-users/twitter-users.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-users/twitter-users.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, AfterViewInit, TemplateRef } from '@angular/core'; 2 | // import { ViewChild, ElementRef } from '@angular/core'; 3 | import { NbDialogService } from '@nebular/theme'; 4 | 5 | @Component({ 6 | selector: 'ngx-twitter-users', 7 | templateUrl: './twitter-users.component.html', 8 | styleUrls: ['./twitter-users.component.scss'], 9 | }) 10 | export class TwitterCUsersComponent implements OnInit, AfterViewInit { 11 | // @ViewChild('nbCardTwitterUsers', { static: false }) private cardContainer: ElementRef; 12 | @Input() private data: any; 13 | private twitterUsers: any; 14 | 15 | public card: any; 16 | public width: number; 17 | public height: number; 18 | 19 | constructor(private dialogService: NbDialogService) {} 20 | 21 | ngOnInit() { 22 | this.twitterUsers = this.data.result[4].graphic[1].users; 23 | } 24 | 25 | ngAfterViewInit() { 26 | 27 | console.log('Twitter Users Component'); 28 | console.log(this.twitterUsers); 29 | } 30 | 31 | openDialog(dialog: TemplateRef) { 32 | this.dialogService.open(dialog); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/src/app/pages/comparison/twitterC/twitterC-week/twitter-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/darkpass/darkpass-list/darkpass-list.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | .i-contact { 6 | font-size: 2rem; 7 | cursor: pointer; 8 | } 9 | 10 | // .time { 11 | // font-size: 0.875rem; 12 | // font-weight: nb-theme(text-paragraph-font-weight); 13 | // text-transform: uppercase; 14 | // } 15 | 16 | nb-list-item ::ng-deep { 17 | .info-container { 18 | padding: 0px; 19 | width: 100%; 20 | // @include nb-ltr(margin-left, 0.875rem); 21 | // @include nb-rtl(margin-right, 0.875rem); 22 | } 23 | 24 | .user-title { 25 | font-weight: 300; 26 | color: nb-theme(text-basic-color); 27 | font-size: 0.8rem; 28 | 29 | p { 30 | font-weight: 300; 31 | font-size: 0.8rem; 32 | padding: 0px; 33 | margin: 0px; 34 | } 35 | 36 | strong { 37 | font-weight: 700; 38 | } 39 | } 40 | 41 | .user-name { 42 | font-size: 0.8rem; 43 | font-weight: 500; 44 | // font-weight: nb-theme(text-paragraph-font-weight); 45 | // text-transform: uppercase; 46 | } 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-email/dorks-email.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-email/dorks-email.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-email', 6 | templateUrl: './dorks-email.component.html', 7 | styleUrls: ['./dorks-email.component.scss'] 8 | }) 9 | export class DorksEmailComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardDorksEmail', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksEmails : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.dorksEmails = this.data.result[4].graphic[7].emails; 22 | console.log("Dorks Emails Component"); 23 | console.log("Dorks Emails data", this.dorksEmails); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-hashtag/dorks-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-hashtag/dorks-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-hashtag', 6 | templateUrl: './dorks-hashtag.component.html', 7 | styleUrls: ['./dorks-hashtag.component.scss'] 8 | }) 9 | export class DorksHashtagComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardDorksHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksHashtag : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.dorksHashtag = this.data.result[4].graphic[6].hashtags; 22 | console.log("Dorks Hashtag Component"); 23 | console.log("Dorks data total", this.data); 24 | console.log("Dorks data", this.dorksHashtag); 25 | } 26 | 27 | ngAfterViewInit() { 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-list-raw/dorks-list-raw.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-list-raw', 6 | templateUrl: './dorks-list-raw.component.html', 7 | styleUrls: ['./dorks-list-raw.component.scss'], 8 | }) 9 | export class DorksRawListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardDorksRawList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private dorksRawList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.dorksRawList = this.data.result[4].graphic[3].rawresults; 27 | console.log("Dorks List Raw Component"); 28 | console.log("Dorks List Raw data", this.dorksRawList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-list/dorks-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-list', 6 | templateUrl: './dorks-list.component.html', 7 | styleUrls: ['./dorks-list.component.scss'], 8 | }) 9 | export class DorksListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardDorksList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private dorksList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.dorksList = this.data.result[4].graphic[4].searches; 27 | console.log("Dorks List Component"); 28 | console.log("Dorks List data", this.dorksList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-mention/dorks-mentions.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-mention/dorks-mentions.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-mentions', 6 | templateUrl: './dorks-mentions.component.html', 7 | styleUrls: ['./dorks-mentions.component.scss'] 8 | }) 9 | export class DorksMentionsComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardMentionsHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksMentions : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.dorksMentions = this.data.result[4].graphic[5].mentions; 22 | console.log("Dorks Mentions Component"); 23 | console.log("Mentions data", this.dorksMentions); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-names/dorks-names.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-names/dorks-names.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-names', 6 | templateUrl: './dorks-names.component.html', 7 | styleUrls: ['./dorks-names.component.scss'] 8 | }) 9 | export class DorksNamesComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardDorksNames', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksNames : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.dorksNames = this.data.result[4].graphic[0].names; 22 | console.log("Dorks Names Component"); 23 | console.log("Names data", this.dorksNames); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-searches/dorks-searches.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | DORKS Searches 4 |
5 |
6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-searches/dorks-searches.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-searches/dorks-searches.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-searches', 6 | templateUrl: './dorks-searches.component.html', 7 | styleUrls: ['./dorks-searches.component.scss'], 8 | }) 9 | export class DorksSearchesComponent implements OnInit, AfterViewInit { 10 | // @ViewChild('nbCardDorksSearches', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksSearches: any; 13 | 14 | constructor(private dialogService: NbDialogService) {} 15 | 16 | ngOnInit() { 17 | this.dorksSearches = this.data.result[4].graphic[5].searches; 18 | console.log('Dorks Searches Component'); 19 | console.log('Dorks data', this.dorksSearches); 20 | } 21 | 22 | ngAfterViewInit() { 23 | } 24 | 25 | openDialog(dialog: TemplateRef) { 26 | this.dialogService.open(dialog); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-social/dorks-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-social/dorks-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-social', 6 | templateUrl: './dorks-social.component.html', 7 | styleUrls: ['./dorks-social.component.scss'] 8 | }) 9 | export class DorksSocialComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardDorksSocial', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksSocial : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.dorksSocial = this.data.result[4].graphic[2].social; 22 | console.log("Dorks Social Component"); 23 | console.log("Social data", this.dorksSocial); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-usernames/dorks-usernames.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/dorks/dorks-usernames/dorks-usernames.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-dorks-usernames', 6 | templateUrl: './dorks-usernames.component.html', 7 | styleUrls: ['./dorks-usernames.component.scss'] 8 | }) 9 | export class DorksUsernamesComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardDorksUsernames', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private dorksUsernames : any; 13 | 14 | constructor(private dialogService: NbDialogService) {} 15 | 16 | ngOnInit() { 17 | this.dorksUsernames = this.data.result[4].graphic[1].username; 18 | console.log("Dorks UserNames Component"); 19 | console.log("Usernames data", this.dorksUsernames); 20 | } 21 | 22 | ngAfterViewInit() { 23 | } 24 | 25 | openDialog(dialog: TemplateRef) { 26 | this.dialogService.open(dialog); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-info/emailrep-info.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | EMAILREP Details 4 |
5 |
6 | 7 |
8 | 9 |
10 | 11 |
12 |
13 | 14 | 15 | 16 | EMAILREP Details 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-info/emailrep-info.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-info/emailrep-info.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-emailrep-info', 6 | templateUrl: './emailrep-info.component.html', 7 | styleUrls: ['./emailrep-info.component.scss'] 8 | }) 9 | export class EmailrepInfoComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: true }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private emailrepInfo : any; 13 | private statusFull : any; 14 | private validation : any; 15 | 16 | constructor(private dialogService: NbDialogService) {} 17 | 18 | ngOnInit() { 19 | console.log("EmailRep Info Component"); 20 | this.emailrepInfo = this.data.result[4].graphic[0].details; 21 | this.validation = this.data.result[2].validation; 22 | try { 23 | this.statusFull = this.data.result[3].raw[0].title; 24 | } 25 | catch (e) { 26 | this.statusFull = ""; 27 | } 28 | console.log("Emailrep Status: ", this.statusFull); 29 | } 30 | 31 | openDialog(dialog: TemplateRef) { 32 | this.dialogService.open(dialog); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-social/emailrep-social.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | EMAILREP Social 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | EMAILREP Social 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-social/emailrep-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/emailrep/emailrep-social/emailrep-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-emailrep-social', 6 | templateUrl: './emailrep-social.component.html', 7 | styleUrls: ['./emailrep-social.component.scss'] 8 | }) 9 | export class EmailrepSocialComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private emailrepSocial : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Keybase Social Component"); 19 | this.emailrepSocial = this.data.result[4].graphic[1].social; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/error/error-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-cloud/fullcontact-cloud.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | FULLCONTACT Footprint 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-cloud/fullcontact-cloud.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-graphs/fullcontact-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-graphs/fullcontact-graphs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-fullcontact-graphs', 6 | templateUrl: './fullcontact-graphs.component.html', 7 | styleUrls: ['./fullcontact-graphs.component.scss'] 8 | }) 9 | export class FullcontactGraphsComponent implements OnInit { 10 | @ViewChild('nbCardFullcontactGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private fullcontactGraphs : any; 13 | private statusFull : any; 14 | private validation : any; 15 | 16 | private card: any; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | console.log("Fullcontact Graphs Component"); 22 | this.fullcontactGraphs = this.data.result[4].graphic[0].social; 23 | console.log("Fullcontact data: ", this.fullcontactGraphs); 24 | this.statusFull = this.data.result[3].raw['status']; 25 | console.log("Fullcontact status: ", this.statusFull); 26 | } 27 | 28 | openDialog(dialog: TemplateRef) { 29 | this.dialogService.open(dialog); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-scramble/fullcontact-scramble.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | FULLCONTACT Bios 4 |
5 |
6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-scramble/fullcontact-scramble.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | 8 | @include media-breakpoint-down(md) { 9 | } 10 | @include media-breakpoint-down(sm) { 11 | } 12 | @include media-breakpoint-down(is) { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/fullcontact/fullcontact-scramble/fullcontact-scramble.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core'; 2 | import { TextScrambleComponent } from '../../../shared/text-scramble/text-scramble.component'; 3 | 4 | @Component({ 5 | selector: 'ngx-fullcontact-scramble', 6 | templateUrl: './fullcontact-scramble.component.html', 7 | styleUrls: ['./fullcontact-scramble.component.scss'] 8 | }) 9 | export class FullcontactScrambleComponent implements OnInit { 10 | @ViewChild('nbCardScramble', { static: true }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private fullcontactScramble : any; 13 | private validation : any; 14 | 15 | constructor() {} 16 | 17 | ngOnInit() { 18 | console.log("Fullcontact Scramble Component"); 19 | this.fullcontactScramble = this.data.result[4].graphic[1].bios; 20 | console.log("Fullcontact data: ", this.fullcontactScramble); 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/github/github-calendar/github-calendar.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/github/github-calendar/github-calendar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | import { Pipe, Sanitizer } from '@angular/core'; 3 | import { NbPopoverDirective, NbPosition, NbTrigger } from '@nebular/theme'; 4 | 5 | @Component({ 6 | selector: 'ngx-github-calendar', 7 | templateUrl: './github-calendar.component.html', 8 | styleUrls: ['./github-calendar.component.scss'] 9 | }) 10 | export class GithubCalendarComponent implements OnInit { 11 | @Input() private data: any; 12 | private githubCalendar : any; 13 | private githubCalendarPrev : any; 14 | private validation : any; 15 | 16 | constructor() {} 17 | 18 | ngOnInit() { 19 | console.log("Init github calendar"); 20 | 21 | this.githubCalendar = this.data.result[4].graphic[1].cal_actual; 22 | this.githubCalendarPrev = this.data.result[4].graphic[2].cal_previous; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/github/github-graphs/github-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/github/github-graphs/github-graphs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | import { NbPopoverDirective, NbPosition, NbTrigger } from '@nebular/theme'; 4 | 5 | @Component({ 6 | selector: 'ngx-github-graphs', 7 | templateUrl: './github-graphs.component.html', 8 | styleUrls: ['./github-graphs.component.scss'] 9 | }) 10 | export class GithubGraphsComponent implements OnInit { 11 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 12 | @Input() private data: any; 13 | private githubGraphs : any; 14 | private validation : any; 15 | 16 | constructor(private dialogService: NbDialogService) {} 17 | 18 | ngOnInit() { 19 | console.log("Github Graphs Component"); 20 | this.githubGraphs = this.data.result[4].graphic[0].github; 21 | this.validation = this.data.result[2].validation; 22 | } 23 | 24 | openDialog(dialog: TemplateRef) { 25 | this.dialogService.open(dialog); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/holehe/holehe-graphs/holehe-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/holehe/holehe-list/holehe-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-holehe-list', 6 | templateUrl: './holehe-list.component.html', 7 | styleUrls: ['./holehe-list.component.scss'], 8 | }) 9 | export class HoleheListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardHoleheList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private holeheList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.holeheList = this.data.result[4].graphic[1].lists; 27 | console.log("Holehe List Component"); 28 | console.log("Holehe List data", this.holeheList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-graphs/instagram-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-graphs/instagram-graphs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-graphs', 6 | templateUrl: './instagram-graphs.component.html', 7 | styleUrls: ['./instagram-graphs.component.scss'] 8 | }) 9 | export class InstagramGraphsComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private instagramGraphs : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Instagram Graphs Component"); 19 | this.instagramGraphs = this.data.result[4].graphic[0].instagram; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-hashtag/instagram-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-hashtag/instagram-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-hashtag', 6 | templateUrl: './instagram-hashtag.component.html', 7 | styleUrls: ['./instagram-hashtag.component.scss'] 8 | }) 9 | export class InstagramHashtagComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardInstagramHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private instagramHashtag : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.instagramHashtag = this.data.result[4].graphic[3].hashtags; 22 | console.log("Instagram Hashtag Component"); 23 | console.log(this.instagramHashtag); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-hour/instagram-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-list/instagram-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-list', 6 | templateUrl: './instagram-list.component.html', 7 | styleUrls: ['./instagram-list.component.scss'], 8 | }) 9 | export class InstagramListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardInstagramList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private instagramList : any; 17 | // private validation : any; 18 | 19 | // private card: any; 20 | // private width: number; 21 | // private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.instagramList = this.data.result[4].graphic[10].postdet; 27 | console.log("Search List Raw Component"); 28 | console.log("Search List Raw data", this.instagramList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-map/instagram-map.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpClient } from '@angular/common/http'; 3 | import { Observable } from 'rxjs'; 4 | 5 | 6 | @Injectable() 7 | export class InstagramMapService { 8 | 9 | constructor(private http: HttpClient) {} 10 | 11 | getCords(): Observable { 12 | return this.http.get('./assets/leaflet-countries/countries.geo.json'); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-mediatype/instagram-mediatype.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-mention/instagram-mention.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-mention/instagram-mention.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-mention', 6 | templateUrl: './instagram-mention.component.html', 7 | styleUrls: ['./instagram-mention.component.scss'] 8 | }) 9 | export class InstagramMentionComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardInstagramMention', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private instagramMention : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.instagramMention = this.data.result[4].graphic[4].mentions; 22 | console.log("Instagram Mention Component"); 23 | console.log(this.instagramMention); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-photos/instagram-photos.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | INSTAGRAM Images 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | INSTAGRAM Images 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-photos/instagram-photos.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-photos/instagram-photos.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-photos', 6 | templateUrl: './instagram-photos.component.html', 7 | styleUrls: ['./instagram-photos.component.scss'] 8 | }) 9 | export class InstagramPhotosComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private instagramPhotos : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Instagram Photos Component"); 19 | this.instagramPhotos = this.data.result[4].graphic[9].photos; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-posts/instagram-posts.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-tagged/instagram-tagged.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-tagged/instagram-tagged.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-instagram-tagged', 6 | templateUrl: './instagram-tagged.component.html', 7 | styleUrls: ['./instagram-tagged.component.scss'] 8 | }) 9 | export class InstagramTaggedComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardInstagramTagged', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private instagramTagged : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.instagramTagged = this.data.result[4].graphic[5].tagged; 22 | console.log("Instagram Tagged Component"); 23 | console.log(this.instagramTagged); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/instagram/instagram-week/instagram-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-devices/keybase-devices.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-devices/keybase-devices.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-keybase-devices', 6 | templateUrl: './keybase-devices.component.html', 7 | styleUrls: ['./keybase-devices.component.scss'] 8 | }) 9 | export class KeybaseDevicesComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private keybaseDevices : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Keybase Devices Component"); 19 | this.keybaseDevices = this.data.result[4].graphic[1].devices; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-graph/keybase-graph.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-graph/keybase-graph.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-keybase-graph', 6 | templateUrl: './keybase-graph.component.html', 7 | styleUrls: ['./keybase-graph.component.scss'] 8 | }) 9 | export class KeybaseGraphComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private keybaseGraph : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Keybase Graph Component"); 19 | this.keybaseGraph = this.data.result[4].graphic[2].keygraph; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-social/keybase-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/keybase/keybase-social/keybase-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-keybase-social', 6 | templateUrl: './keybase-social.component.html', 7 | styleUrls: ['./keybase-social.component.scss'] 8 | }) 9 | export class KeybaseSocialComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private keybaseSocial : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Keybase Social Component"); 19 | this.keybaseSocial = this.data.result[4].graphic[0].keysocial; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/leak/leak-graphs/leak-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/linkedin/linkedin-bubble/linkedin-bubble.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/linkedin/linkedin-bubble/linkedin-bubble.component.ts: -------------------------------------------------------------------------------- 1 | // import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core'; 2 | // import { BubbleComponent } from '../../../shared/bubble/bubble.component'; 3 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 4 | import { NbDialogService } from '@nebular/theme'; 5 | 6 | @Component({ 7 | selector: 'ngx-linkedin-bubble', 8 | templateUrl: './linkedin-bubble.component.html', 9 | styleUrls: ['./linkedin-bubble.component.scss'] 10 | }) 11 | export class LinkedinBubbleComponent implements OnInit { 12 | @ViewChild('nbCardLinkedinBubble', { static: false }) private nbCardContainer: ElementRef; 13 | @Input() private data: any; 14 | private linkedinBubble : any; 15 | private validation : any; 16 | 17 | constructor(private dialogService: NbDialogService) {} 18 | 19 | ngOnInit() { 20 | console.log("Linkedin Bubble Component"); 21 | this.linkedinBubble = this.data.result[4].graphic[1].skills.children; 22 | } 23 | 24 | openDialog(dialog: TemplateRef) { 25 | this.dialogService.open(dialog); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/linkedin/linkedin-graphs/linkedin-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/mastodon/mastodon-graph/mastodon-graph.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/mastodon/mastodon-graph/mastodon-graph.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-mastodon-graph', 6 | templateUrl: './mastodon-graph.component.html', 7 | styleUrls: ['./mastodon-graph.component.scss'] 8 | }) 9 | export class MastodonGraphComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private mastodonGraph : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Mastodon Graph Component"); 19 | this.mastodonGraph = this.data.result[4].graphic[0].user; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/mastodon/mastodon-list/mastodon-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-mastodon-list', 6 | templateUrl: './mastodon-list.component.html', 7 | styleUrls: ['./mastodon-list.component.scss'], 8 | }) 9 | export class MastodonListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardMastodonList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private mastodonList : any; 17 | // private validation : any; 18 | 19 | // private card: any; 20 | // private width: number; 21 | // private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.mastodonList = this.data.result[4].graphic[2].list; 27 | console.log("Mastodon List Raw Component"); 28 | console.log("Mastodon List Raw data", this.mastodonList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/mastodon/mastodon-social/mastodon-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/mastodon/mastodon-social/mastodon-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-mastodon-social', 6 | templateUrl: './mastodon-social.component.html', 7 | styleUrls: ['./mastodon-social.component.scss'] 8 | }) 9 | export class MastodonSocialComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private mastodonSocial : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Mastodon Social Component"); 19 | this.mastodonSocial = this.data.result[4].graphic[1].social; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/peopledatalabs/peopledatalabs-graphs/peopledatalabs-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/peopledatalabs/peopledatalabs-social/peopledatalabs-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/psbdump/psbdmp-leak/psbdmp-leak.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/psbdump/psbdmp-leak/psbdmp-leak.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-psbdmp-leak', 6 | templateUrl: './psbdmp-leak.component.html', 7 | styleUrls: ['./psbdmp-leak.component.scss'], 8 | }) 9 | export class PsbDmpLeakComponent implements OnInit { 10 | @Input() private data: any; 11 | private psbdmpLeak: any; 12 | 13 | constructor(private dialogService: NbDialogService) {} 14 | 15 | ngOnInit() { 16 | this.psbdmpLeak = this.data.result[4].graphic[1].dword; 17 | console.log('PsbDmp Component'); 18 | console.log(this.psbdmpLeak); 19 | } 20 | 21 | openDialog(dialog: TemplateRef) { 22 | this.dialogService.open(dialog); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/psbdump/psbdmp-list/psbdmp-list.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | nb-list { 6 | overflow-x: hidden; 7 | } 8 | 9 | nb-list-item { 10 | display: flex; 11 | align-items: flex-end; 12 | justify-content: space-between; 13 | margin: 0 -0.25rem; 14 | } 15 | 16 | .visited-date, 17 | .visited-pages-count, 18 | .visited-percentages { 19 | flex: 1 0 auto; 20 | margin: 0 0.25rem; 21 | } 22 | 23 | .caption { 24 | color: nb-theme(color-success-default); 25 | } 26 | 27 | .value { 28 | margin-top: 0.25rem; 29 | color: #05fcfc; 30 | } 31 | 32 | .badvalue { 33 | margin-top: 0.25rem; 34 | color: nb-theme(color-success-default); 35 | background-color: rgba(0, 214, 143, 0.3); 36 | border: 1px solid nb-theme(color-success-default); 37 | border-radius: 20px; 38 | text-align: center; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/psbdump/psbdmp-list/psbdmp-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-psbdmp-list', 6 | templateUrl: './psbdmp-list.component.html', 7 | styleUrls: ['./psbdmp-list.component.scss'], 8 | }) 9 | export class PsbDmpListComponent implements OnInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @Input() private data: any; 15 | private psbdmpList: any; 16 | 17 | constructor(private dialogService: NbDialogService) {} 18 | 19 | ngOnInit() { 20 | console.log('PsbDmp List Component'); 21 | this.psbdmpList = this.data.result[4].graphic[0].dlist; 22 | } 23 | 24 | openDialog(dialog: TemplateRef) { 25 | this.dialogService.open(dialog); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-bubble/reddit-bubble.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | REDDIT Topics 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | REDDIT Topics 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-bubble/reddit-bubble.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-bubble/reddit-bubble.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-reddit-bubble', 6 | templateUrl: './reddit-bubble.component.html', 7 | styleUrls: ['./reddit-bubble.component.scss'] 8 | }) 9 | export class RedditBubbleComponent implements OnInit { 10 | @ViewChild('nbCardRedditBubble', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private redditBubble : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Reddit Bubble Component"); 19 | this.redditBubble = this.data.result[4].graphic[3].topics.children; 20 | } 21 | 22 | openDialog(dialog: TemplateRef) { 23 | this.dialogService.open(dialog); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-hour/reddit-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-social/reddit-social.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | REDDIT Social 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | REDDIT Social 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-social/reddit-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-social/reddit-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-reddit-social', 6 | templateUrl: './reddit-social.component.html', 7 | styleUrls: ['./reddit-social.component.scss'] 8 | }) 9 | export class RedditSocialComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private redditSocial : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Reddit Social Component"); 19 | this.redditSocial = this.data.result[4].graphic[0].social; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/reddit/reddit-week/reddit-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-email/search-email.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-email/search-email.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-email', 6 | templateUrl: './search-email.component.html', 7 | styleUrls: ['./search-email.component.scss'] 8 | }) 9 | export class SearchEmailComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchEmail', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchEmails : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchEmails = this.data.result[4].graphic[8].emails; 22 | console.log("Search Emails Component"); 23 | console.log("Search Emails data", this.searchEmails); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-hashtag/search-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-hashtag/search-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-hashtag', 6 | templateUrl: './search-hashtag.component.html', 7 | styleUrls: ['./search-hashtag.component.scss'] 8 | }) 9 | export class SearchHashtagComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchHashtag : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchHashtag = this.data.result[4].graphic[7].hashtags; 22 | console.log("Search Hashtag Component"); 23 | console.log("Search data total", this.data); 24 | console.log("Search data", this.searchHashtag); 25 | } 26 | 27 | ngAfterViewInit() { 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-list-raw/search-list-raw.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-list-raw', 6 | templateUrl: './search-list-raw.component.html', 7 | styleUrls: ['./search-list-raw.component.scss'], 8 | }) 9 | export class SearchRawListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardSearchRawList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private searchRawList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.searchRawList = this.data.result[4].graphic[3].rawresults; 27 | console.log("Search List Raw Component"); 28 | console.log("Search List Raw data", this.searchRawList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-list/search-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-list', 6 | templateUrl: './search-list.component.html', 7 | styleUrls: ['./search-list.component.scss'], 8 | }) 9 | export class SearchListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardSearchList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private searchList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.searchList = this.data.result[4].graphic[4].results; 27 | console.log("Search List Component"); 28 | console.log("Search List data", this.searchList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-mention/search-mentions.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-mention/search-mentions.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-mentions', 6 | templateUrl: './search-mentions.component.html', 7 | styleUrls: ['./search-mentions.component.scss'] 8 | }) 9 | export class SearchMentionsComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardMentionsHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchMentions : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchMentions = this.data.result[4].graphic[6].mentions; 22 | console.log("Search Mentions Component"); 23 | console.log("Mentions data", this.searchMentions); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-names/search-names.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-names/search-names.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-names', 6 | templateUrl: './search-names.component.html', 7 | styleUrls: ['./search-names.component.scss'] 8 | }) 9 | export class SearchNamesComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchNames', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchNames : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchNames = this.data.result[4].graphic[0].names; 22 | console.log("Search Names Component"); 23 | console.log("Names data", this.searchNames); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-searches/search-searches.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SEARCH Searches ( Google Bing Yandex Yahoo DuckDuckGo Baidu ) 4 |
5 |
6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-searches/search-searches.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-searches/search-searches.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-searches', 6 | templateUrl: './search-searches.component.html', 7 | styleUrls: ['./search-searches.component.scss'] 8 | }) 9 | export class SearchSearchesComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchSearches', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchSearches : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchSearches = this.data.result[4].graphic[5].searches; 22 | console.log("Search Searches Component"); 23 | console.log("Searches data", this.searchSearches); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-social/search-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-social/search-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-social', 6 | templateUrl: './search-social.component.html', 7 | styleUrls: ['./search-social.component.scss'] 8 | }) 9 | export class SearchSocialComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchSocial', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchSocial : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchSocial = this.data.result[4].graphic[2].social; 22 | console.log("Search Social Component"); 23 | console.log("Social data", this.searchSocial); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-usernames/search-usernames.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/search/search-usernames/search-usernames.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-search-usernames', 6 | templateUrl: './search-usernames.component.html', 7 | styleUrls: ['./search-usernames.component.scss'] 8 | }) 9 | export class SearchUsernamesComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSearchUsernames', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private searchUsernames : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.searchUsernames = this.data.result[4].graphic[1].username; 22 | console.log("Search UserNames Component"); 23 | console.log("Names data", this.searchUsernames); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/sherlock/sherlock-graphs/sherlock-graphs.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SHERLOCK Graphs 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | SHERLOCK Graphs 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/sherlock/sherlock-graphs/sherlock-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | /* borders */ 5 | 6 | nb-card-body { 7 | padding: 0; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/sherlock/sherlock-graphs/sherlock-graphs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-sherlock-graph', 6 | templateUrl: './sherlock-graphs.component.html', 7 | styleUrls: ['./sherlock-graphs.component.scss'] 8 | }) 9 | export class SherlockGraphComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSherlockGraph', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private sherlockGraph : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.sherlockGraph = this.data.result[4].graphic[0].sherlock; 22 | console.log("Sherlock Graph Component"); 23 | console.log("Sherlock data", this.sherlockGraph); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/sherlock/sherlock-list/sherlock-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-sherlock-list', 6 | templateUrl: './sherlock-list.component.html', 7 | styleUrls: ['./sherlock-list.component.scss'], 8 | }) 9 | export class SherlockListComponent implements OnInit, AfterViewInit { 10 | 11 | contacts: any[]; 12 | recent: any[]; 13 | 14 | @ViewChild('nbCardSherlockList', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private sherlockList : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | this.sherlockList = this.data.result[4].graphic[1].lists; 27 | console.log("Sherlock List Component"); 28 | console.log("Sherlock List data", this.sherlockList); 29 | } 30 | 31 | ngAfterViewInit() { 32 | } 33 | 34 | openDialog(dialog: TemplateRef) { 35 | this.dialogService.open(dialog); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/skype/skype.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SKYPE 4 |
5 |
6 | 7 |
8 | 9 |

{{statusFull}}

10 |
11 |
12 |
13 | 14 | 15 | 16 | SKYPE 17 | 18 |
19 | 20 |

{{statusFull}}

21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/skype/skype.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/skype/skype.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-skype', 6 | templateUrl: './skype.component.html', 7 | styleUrls: ['./skype.component.scss'] 8 | }) 9 | export class SkypeComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: true }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private skype : any; 13 | private statusFull : any; 14 | private validation : any; 15 | 16 | constructor(private dialogService: NbDialogService) {} 17 | 18 | ngOnInit() { 19 | console.log("Skype Info Component"); 20 | this.skype = this.data.result[4].graphic[0].details; 21 | this.validation = this.data.result[2].validation; 22 | try { 23 | this.statusFull = this.data.result[3].raw[0].skype; 24 | } 25 | catch (e) { 26 | this.statusFull = ""; 27 | } 28 | console.log("Skype Status: ", this.statusFull); 29 | } 30 | 31 | openDialog(dialog: TemplateRef) { 32 | this.dialogService.open(dialog); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-email/socialscan-email.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SOCIALSCAN Email 4 | 5 |
6 |
7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | SOCIALSCAN Email 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-email/socialscan-email.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-email/socialscan-email.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-socialscan-email', 6 | templateUrl: './socialscan-email.component.html', 7 | styleUrls: ['./socialscan-email.component.scss'] 8 | }) 9 | export class SocialscanEmailComponent implements OnInit { 10 | @ViewChild('nbCardSocialscanEmail', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private socialscanEmail : any; 13 | private validation : any; 14 | 15 | private card: any; 16 | 17 | constructor(private dialogService: NbDialogService) {} 18 | 19 | ngOnInit() { 20 | console.log("Socialscan Email Component"); 21 | this.socialscanEmail = this.data.result[4].graphic[0].social_email; 22 | console.log("Socialscan Email data: ", this.socialscanEmail); 23 | } 24 | 25 | openDialog(dialog: TemplateRef) { 26 | this.dialogService.open(dialog); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-user/socialscan-user.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SOCIALSCAN User 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | SOCIALSCAN User 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-user/socialscan-user.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/socialscan/socialscan-user/socialscan-user.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-socialscan-user', 6 | templateUrl: './socialscan-user.component.html', 7 | styleUrls: ['./socialscan-user.component.scss'] 8 | }) 9 | export class SocialscanUserComponent implements OnInit { 10 | @ViewChild('nbCardSocialscanUser', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private socialscanUser : any; 13 | private validation : any; 14 | 15 | private card: any; 16 | 17 | constructor(private dialogService: NbDialogService) {} 18 | 19 | ngOnInit() { 20 | console.log("Socialscan User Component"); 21 | this.socialscanUser = this.data.result[4].graphic[1].social_user; 22 | console.log("Socialscan User data: ", this.socialscanUser); 23 | } 24 | 25 | openDialog(dialog: TemplateRef) { 26 | this.dialogService.open(dialog); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-autors/spotify-autors.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-autors/spotify-autors.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-spotify-autors', 6 | templateUrl: './spotify-autors.component.html', 7 | styleUrls: ['./spotify-autors.component.scss'] 8 | }) 9 | export class SpotifyAutorsComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSpotifyAutors', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private spotifyAutors : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.spotifyAutors = this.data.result[4].graphic[2].autors; 22 | console.log("Spotify Autors Component"); 23 | console.log(this.spotifyAutors); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-lang/spotify-lang.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-lang/spotify-lang.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-spotify-lang', 6 | templateUrl: './spotify-lang.component.html', 7 | styleUrls: ['./spotify-lang.component.scss'] 8 | }) 9 | export class SpotifyLangComponent implements OnInit { 10 | @ViewChild('nbCardSpotifyLang', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private spotifyLang : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Spotify Lang Component"); 19 | // this.spotifyLang = this.data.result[4].graphic[4].lang.children; 20 | this.spotifyLang = this.data.result[4].graphic[4].lang; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-playlists/spotify-playlists.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-social/spotify-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-social/spotify-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-spotify-social', 6 | templateUrl: './spotify-social.component.html', 7 | styleUrls: ['./spotify-social.component.scss'] 8 | }) 9 | export class SpotifySocialComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSpotifySocial', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private spotifySocial : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.spotifySocial = this.data.result[4].graphic[0].social; 22 | } 23 | 24 | ngAfterViewInit() { 25 | 26 | console.log("Spotify Social Component"); 27 | console.log(this.spotifySocial); 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-words/spotify-words.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/spotify/spotify-words/spotify-words.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-spotify-words', 6 | templateUrl: './spotify-words.component.html', 7 | styleUrls: ['./spotify-words.component.scss'] 8 | }) 9 | export class SpotifyWordsComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardSpotifyWords', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private spotifyWords : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.spotifyWords = this.data.result[4].graphic[3].words; 22 | console.log("Spotify Words Component"); 23 | console.log(this.spotifyWords); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/taskexec/taskexec.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit, OnChanges } from '@angular/core'; 2 | // import { ColumnMode } from '@swimlane/ngx-datatable/lib/types/column-mode.type'; 3 | 4 | 5 | @Component({ 6 | selector: 'ngx-taskexec', 7 | templateUrl: './taskexec.component.html', 8 | styleUrls: ['./taskexec.component.scss'], 9 | }) 10 | export class TaskexecComponent { 11 | @Input() private dataTask: any; 12 | @Input() private TaskPP: number; 13 | @Input() private TaskPS: number; 14 | public rows: any; 15 | 16 | // ColumnMode = ColumnMode; 17 | 18 | constructor() {} 19 | 20 | ngOnInit() { 21 | this.rows = this.dataTask; 22 | // this.updateTasks(); 23 | } 24 | 25 | ngOnChanges(){ 26 | // this.updateTasks(); 27 | this.rows = this.dataTask; 28 | this.rows = [...this.rows]; 29 | } 30 | 31 | /* Conditional Classes */ 32 | getStateColor({ row, column, value }): any { 33 | console.warn(value); 34 | return { 35 | 'success-color': value === 'SUCCESS', 36 | 'process-color': value === 'PROCESS', 37 | 'pending-color': value === 'PENDING', 38 | 'warning-color': value === 'WARNING', 39 | 'failure-color': value === 'FAILURE' 40 | }; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-graphs/tiktok-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-hashtag/tiktok-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-hashtag/tiktok-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-tiktok-hashtag', 6 | templateUrl: './tiktok-hashtag.component.html', 7 | styleUrls: ['./tiktok-hashtag.component.scss'], 8 | }) 9 | export class TiktokHashtagComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardTiktokHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private tiktokHashtag: any; 13 | 14 | constructor(private dialogService: NbDialogService) {} 15 | 16 | ngOnInit() { 17 | this.tiktokHashtag = this.data.result[4].graphic[2].hashtags; 18 | console.log('Tiktok Hashtag Component'); 19 | console.log(this.tiktokHashtag); 20 | } 21 | 22 | ngAfterViewInit() { 23 | } 24 | 25 | openDialog(dialog: TemplateRef) { 26 | this.dialogService.open(dialog); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-hour/tiktok-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-posts/tiktok-posts.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-resume/tiktok-resume.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-videos/tiktok-videos.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-videos/tiktok-videos.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-tiktok-videos', 6 | templateUrl: './tiktok-videos.component.html', 7 | styleUrls: ['./tiktok-videos.component.scss'] 8 | }) 9 | export class TiktokVideosComponent implements OnInit { 10 | @ViewChild('nbCardGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private tiktokVideos: any; 13 | private validation: any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log('Tiktok Posts Component'); 19 | this.tiktokVideos = this.data.result[4].graphic[7].videos; 20 | this.validation = this.data.result[2].validation; 21 | } 22 | 23 | openDialog(dialog: TemplateRef) { 24 | this.dialogService.open(dialog); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tiktok/tiktok-week/tiktok-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tinder/tinder-graphs/tinder-graphs.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | TINDER Graphs 4 |
5 |
6 | 7 |
8 | 9 |
10 | 11 |
12 |
13 | 14 | 15 | 16 | TINDER Graphs 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tinder/tinder-graphs/tinder-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/tweetiment/tweetiment-lines/tweetiment-lines.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitch/twitch-duration/twitch-duration.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | text { 5 | fill: #05fcfc; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitch/twitch-hour/twitch-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitch/twitch-social/twitch-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitch/twitch-social/twitch-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-twitch-social', 6 | templateUrl: './twitch-social.component.html', 7 | styleUrls: ['./twitch-social.component.scss'] 8 | }) 9 | export class TwitchSocialComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardTwitchSocial', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private twitchSocial : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.twitchSocial = this.data.result[4].graphic[0].social; 22 | } 23 | 24 | ngAfterViewInit() { 25 | 26 | console.log("Twitch Social Component"); 27 | console.log(this.twitchSocial); 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitch/twitch-week/twitch-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-approval/twitter-approval.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-hashtag/twitter-hashtag.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-hashtag/twitter-hashtag.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-twitter-hashtag', 6 | templateUrl: './twitter-hashtag.component.html', 7 | styleUrls: ['./twitter-hashtag.component.scss'] 8 | }) 9 | export class TwitterHashtagComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardTwitterHashtag', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private twitterHashtag : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.twitterHashtag = this.data.result[4].graphic[4].hashtag; 22 | console.log("Twitter Hashtag Component"); 23 | console.log(this.twitterHashtag); 24 | } 25 | 26 | ngAfterViewInit() { 27 | } 28 | 29 | openDialog(dialog: TemplateRef) { 30 | this.dialogService.open(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-hour/twitter-hour.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-list/twitter-list.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-popularity/twitter-popularity.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-resume/twitter-resume.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-social/twitter-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-social/twitter-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-twitter-social', 6 | templateUrl: './twitter-social.component.html', 7 | styleUrls: ['./twitter-social.component.scss'] 8 | }) 9 | export class TwitterSocialComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardTwitterSocial', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private twitterSocial : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.twitterSocial = this.data.result[4].graphic[0].social; 22 | } 23 | 24 | ngAfterViewInit() { 25 | 26 | console.log("Twitter Social Component"); 27 | console.log(this.twitterSocial); 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-source/twitter-source.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-twvsrt/twitter-twvsrt.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-users/twitter-users.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-users/twitter-users.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-twitter-users', 6 | templateUrl: './twitter-users.component.html', 7 | styleUrls: ['./twitter-users.component.scss'] 8 | }) 9 | export class TwitterUsersComponent implements OnInit, AfterViewInit { 10 | @ViewChild('nbCardTwitterUsers', { static: false }) private cardContainer: ElementRef; 11 | @Input() private data: any; 12 | private twitterUsers : any; 13 | 14 | private card: any; 15 | private width: number; 16 | private height: number; 17 | 18 | constructor(private dialogService: NbDialogService) {} 19 | 20 | ngOnInit() { 21 | this.twitterUsers = this.data.result[4].graphic[5].users; 22 | } 23 | 24 | ngAfterViewInit() { 25 | 26 | console.log("Twitter Users Component"); 27 | console.log(this.twitterUsers); 28 | } 29 | 30 | openDialog(dialog: TemplateRef) { 31 | this.dialogService.open(dialog); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/twitter/twitter-week/twitter-week.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | fill: rgb(77, 208, 225); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/validation/validation-filter.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-validation-filter', 5 | styleUrls: ['./validation-filter.component.scss'], 6 | template: ` 7 | 8 |
9 |
10 | 11 |
12 |
13 | 14 |
15 |
{{ title }} - {{ on ? 'ON' : 'OFF' }}
16 | 17 |
18 |
19 | `, 20 | }) 21 | export class ValidationFilterComponent { 22 | 23 | @Input() title: string; 24 | @Input() type: string; 25 | @Input() on = true; 26 | } 27 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-friends/venmo-friends.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | VENMO Friends 4 |
5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | VENMO Friends 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-friends/venmo-friends.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-friends/venmo-friends.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-venmo-friends', 6 | templateUrl: './venmo-friends.component.html', 7 | styleUrls: ['./venmo-friends.component.scss'] 8 | }) 9 | export class VenmoFriendsComponent implements OnInit { 10 | @ViewChild('nbCardVenmoFriends', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private venmoFriends : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Venmo Friends Component"); 19 | this.venmoFriends = this.data.result[4].graphic[1].friends; 20 | } 21 | 22 | openDialog(dialog: TemplateRef) { 23 | this.dialogService.open(dialog); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-graphs/venmo-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | nb-card-body { 8 | padding: 0; 9 | } 10 | 11 | @include media-breakpoint-down(md) { 12 | } 13 | @include media-breakpoint-down(sm) { 14 | } 15 | @include media-breakpoint-down(is) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-graphs/venmo-graphs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, TemplateRef } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-venmo-graphs', 6 | templateUrl: './venmo-graphs.component.html', 7 | styleUrls: ['./venmo-graphs.component.scss'] 8 | }) 9 | export class VenmoGraphsComponent implements OnInit { 10 | @ViewChild('nbCardVenmoGraphs', { static: false }) private nbCardContainer: ElementRef; 11 | @Input() private data: any; 12 | private venmoGraphs : any; 13 | private validation : any; 14 | 15 | constructor(private dialogService: NbDialogService) {} 16 | 17 | ngOnInit() { 18 | console.log("Venmo Graphs Component"); 19 | this.venmoGraphs = this.data.result[4].graphic[0].user; 20 | } 21 | 22 | openDialog(dialog: TemplateRef) { 23 | this.dialogService.open(dialog); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-trans/venmo-trans.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | .i-contact { 6 | font-size: 2rem; 7 | cursor: pointer; 8 | } 9 | 10 | // .time { 11 | // font-size: 0.875rem; 12 | // font-weight: nb-theme(text-paragraph-font-weight); 13 | // text-transform: uppercase; 14 | // } 15 | 16 | nb-list-item ::ng-deep { 17 | .info-container { 18 | padding: 0px; 19 | width: 100%; 20 | // @include nb-ltr(margin-left, 0.875rem); 21 | // @include nb-rtl(margin-right, 0.875rem); 22 | } 23 | 24 | .user-title { 25 | font-weight: 300; 26 | color: nb-theme(text-basic-color); 27 | font-size: 0.8rem; 28 | 29 | p { 30 | font-weight: 300; 31 | font-size: 0.8rem; 32 | padding: 0px; 33 | margin: 0px; 34 | } 35 | 36 | strong { 37 | font-weight: 700; 38 | } 39 | } 40 | 41 | .user-name { 42 | font-size: 0.8rem; 43 | font-weight: 500; 44 | // font-weight: nb-theme(text-paragraph-font-weight); 45 | // text-transform: uppercase; 46 | } 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /frontend/src/app/pages/gatherer/venmo/venmo-trans/venmo-trans.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit, TemplateRef, ViewEncapsulation } from '@angular/core'; 2 | import { NbDialogService } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-venmo-trans', 6 | templateUrl: './venmo-trans.component.html', 7 | styleUrls: ['./venmo-trans.component.scss'], 8 | }) 9 | export class VenmoTransComponent implements OnInit, AfterViewInit { 10 | 11 | // contacts: any[]; 12 | // recent: any[]; 13 | 14 | @ViewChild('nbCardVenmoTrans', { static: false }) private cardContainer: ElementRef; 15 | @Input() private data: any; 16 | private venmoTrans : any; 17 | private validation : any; 18 | 19 | private card: any; 20 | private width: number; 21 | private height: number; 22 | 23 | constructor(private dialogService: NbDialogService) {} 24 | 25 | ngOnInit() { 26 | console.log("Venmo Trans Component"); 27 | this.venmoTrans = this.data.result[4].graphic[2].trans; 28 | } 29 | 30 | ngAfterViewInit() { 31 | } 32 | 33 | openDialog(dialog: TemplateRef) { 34 | this.dialogService.open(dialog); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/miscellaneous-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | 4 | import { MiscellaneousComponent } from './miscellaneous.component'; 5 | import { NotFoundComponent } from './not-found/not-found.component'; 6 | 7 | const routes: Routes = [ 8 | { 9 | path: '', 10 | component: MiscellaneousComponent, 11 | children: [ 12 | { 13 | path: '404', 14 | component: NotFoundComponent, 15 | }, 16 | ], 17 | }, 18 | ]; 19 | 20 | @NgModule({ 21 | imports: [RouterModule.forChild(routes)], 22 | exports: [RouterModule], 23 | }) 24 | export class MiscellaneousRoutingModule { 25 | } 26 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/miscellaneous.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-miscellaneous', 5 | template: ` 6 | 7 | `, 8 | }) 9 | export class MiscellaneousComponent { 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/miscellaneous.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { NbButtonModule, NbCardModule } from '@nebular/theme'; 3 | 4 | import { ThemeModule } from '../../@theme/theme.module'; 5 | import { MiscellaneousRoutingModule } from './miscellaneous-routing.module'; 6 | import { MiscellaneousComponent } from './miscellaneous.component'; 7 | import { NotFoundComponent } from './not-found/not-found.component'; 8 | 9 | @NgModule({ 10 | imports: [ 11 | ThemeModule, 12 | NbCardModule, 13 | NbButtonModule, 14 | MiscellaneousRoutingModule, 15 | ], 16 | declarations: [ 17 | MiscellaneousComponent, 18 | NotFoundComponent, 19 | ], 20 | }) 21 | export class MiscellaneousModule { } 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/not-found/not-found.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 |

404 Page Not Found

7 | The page you were looking for doesn't exist 8 | 11 |
12 |
13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/not-found/not-found.component.scss: -------------------------------------------------------------------------------- 1 | .flex-centered { 2 | margin: auto; 3 | } 4 | nb-card-body { 5 | display: flex; 6 | } 7 | 8 | .title { 9 | text-align: center; 10 | } 11 | 12 | .sub-title { 13 | text-align: center; 14 | display: block; 15 | margin-bottom: 3rem; 16 | } 17 | 18 | .home-button { 19 | margin-bottom: 2rem; 20 | } 21 | -------------------------------------------------------------------------------- /frontend/src/app/pages/miscellaneous/not-found/not-found.component.ts: -------------------------------------------------------------------------------- 1 | import { NbMenuService } from '@nebular/theme'; 2 | import { Component } from '@angular/core'; 3 | 4 | @Component({ 5 | selector: 'ngx-not-found', 6 | styleUrls: ['./not-found.component.scss'], 7 | templateUrl: './not-found.component.html', 8 | }) 9 | export class NotFoundComponent { 10 | 11 | constructor(private menuService: NbMenuService) { 12 | } 13 | 14 | goToHome() { 15 | this.menuService.navigateHome(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/src/app/pages/pages-menu.ts: -------------------------------------------------------------------------------- 1 | import { NbMenuItem } from '@nebular/theme'; 2 | 3 | export const MENU_ITEMS: NbMenuItem[] = [ 4 | { 5 | title: 'Principal', 6 | icon: 'home', 7 | link: '/pages/principal', 8 | home: true, 9 | }, 10 | { 11 | title: 'Gatherer', 12 | icon: 'binoculars', 13 | link: '/pages/gatherer', 14 | }, 15 | { 16 | title: 'Profile', 17 | icon: 'user', 18 | link: '/pages/profile', 19 | }, 20 | { 21 | title: 'Timeline', 22 | icon: 'stopwatch', 23 | link: '/pages/timeline', 24 | }, 25 | { 26 | title: 'ApiKeys', 27 | icon: 'key', 28 | link: '/pages/apikeys', 29 | }, 30 | // { 31 | // title: 'Comparison', 32 | // icon: 'chart-bar', 33 | // children: [ 34 | // { 35 | // title: 'Twitter', 36 | // icon: { icon: 'twitter', pack: 'fab' }, 37 | // link: '/pages/comparison', 38 | // }, 39 | // ], 40 | // }, 41 | ]; 42 | -------------------------------------------------------------------------------- /frontend/src/app/pages/pages.component.scss: -------------------------------------------------------------------------------- 1 | @import '../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | ::ng-deep router-outlet + * { 5 | display: block; 6 | animation: fade 1s; 7 | 8 | @keyframes fade { 9 | from { 10 | opacity: 0; 11 | } 12 | 13 | to { 14 | opacity: 1; 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /frontend/src/app/pages/pages.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { NbIconLibraries } from '@nebular/theme'; 3 | 4 | import { MENU_ITEMS } from './pages-menu'; 5 | 6 | @Component({ 7 | selector: 'ngx-pages', 8 | styleUrls: ['pages.component.scss'], 9 | template: ` 10 | 11 | 12 | 13 | 14 | `, 15 | }) 16 | export class PagesComponent { 17 | 18 | menu = MENU_ITEMS; 19 | 20 | constructor(iconsLibrary: NbIconLibraries) { 21 | iconsLibrary.registerFontPack('font-awesome', { packClass: 'fa', iconClassPrefix: 'fa' }); 22 | iconsLibrary.registerFontPack('fa', { packClass: 'fa', iconClassPrefix: 'fa' }); 23 | iconsLibrary.registerFontPack('fab', { packClass: 'fab', iconClassPrefix: 'fa' }); 24 | iconsLibrary.setDefaultPack('font-awesome'); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /frontend/src/app/pages/principal/principal.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | 3 | import { NgxChartsModule } from '@swimlane/ngx-charts'; 4 | import { NbCardModule } from '@nebular/theme'; 5 | import { NbAccordionModule } from '@nebular/theme'; 6 | 7 | import { ThemeModule } from '../../@theme/theme.module'; 8 | import { PrincipalComponent } from './principal.component'; 9 | 10 | @NgModule({ 11 | imports: [ 12 | ThemeModule, 13 | NgxChartsModule, 14 | NbCardModule, 15 | NbAccordionModule, 16 | ], 17 | declarations: [ 18 | PrincipalComponent, 19 | ], 20 | }) 21 | export class PrincipalModule { } 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-data/profile-data.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | @include media-breakpoint-down(md) { 7 | } 8 | @include media-breakpoint-down(sm) { 9 | } 10 | @include media-breakpoint-down(is) { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-data/profile-data.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-profile-data', 5 | styleUrls: ['./profile-data.component.scss'], 6 | templateUrl: './profile-data.component.html', 7 | }) 8 | export class ProfileDataComponent implements OnInit { 9 | @Input() private name: any; 10 | @Input() private usern: any; 11 | @Input() private organization: any; 12 | @Input() private location: any; 13 | @Input() private geo: any; 14 | @Input() private emails: any; 15 | @Input() private phone: any; 16 | @Input() private url: any; 17 | @Input() private bio: any; 18 | 19 | constructor() {} 20 | 21 | ngOnInit() { 22 | console.log("Profile Data Component"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-map/profile-map.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | - Posible Geolocation 4 | 5 | 6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-map/profile-map.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpClient } from '@angular/common/http'; 3 | import { Observable } from 'rxjs'; 4 | 5 | 6 | @Injectable() 7 | export class ProfileMapService { 8 | 9 | constructor(private http: HttpClient) {} 10 | 11 | getCords(): Observable { 12 | return this.http.get('./assets/leaflet-countries/countries.geo.json'); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-photos/profile-photos.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngx-profile-photos', 5 | styleUrls: ['./profile-photos.component.scss'], 6 | templateUrl: './profile-photos.component.html', 7 | }) 8 | export class ProfilePhotosComponent implements OnInit { 9 | @Input() private data: any; 10 | private selectedPhoto: any; 11 | private isSingleView: any; 12 | 13 | constructor() {} 14 | 15 | ngOnInit() { 16 | console.log("Profile Photo Component"); 17 | // this.data = this.getUnique(this.data, "title") 18 | this.selectedPhoto = this.data[0]; 19 | this.isSingleView = false; 20 | } 21 | 22 | selectPhoto(photo: any) { 23 | this.selectedPhoto = photo; 24 | this.isSingleView = true; 25 | } 26 | 27 | private getUnique(arr, comp) { 28 | 29 | const unique = arr 30 | .map(e => e[comp]) 31 | 32 | // store the keys of the unique objects 33 | .map((e, i, final) => final.indexOf(e) === i && i) 34 | 35 | // eliminate the dead keys & store unique objects 36 | .filter(e => arr[e]).map(e => arr[e]); 37 | 38 | return unique; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-social/profile-social.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Profile Social 4 | 5 | 6 | 7 |
8 | 25 |
26 | 27 |
28 |
29 | -------------------------------------------------------------------------------- /frontend/src/app/pages/profile/profile-social/profile-social.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | /* import { icon, findIconDefinition } from '@fortawesome/fontawesome-svg-core' */ 3 | 4 | @Component({ 5 | selector: 'ngx-profile-social', 6 | styleUrls: ['./profile-social.component.scss'], 7 | templateUrl: './profile-social.component.html', 8 | }) 9 | export class ProfileSocialComponent implements OnInit { 10 | @Input() private social: any; 11 | private faUser: any; 12 | 13 | constructor() {} 14 | 15 | ngOnInit() { 16 | console.log("Profile Social Component"); 17 | this.social = this.getUnique(this.social, "name") 18 | } 19 | 20 | private getUnique(arr, comp) { 21 | 22 | const unique = arr 23 | .map(e => e[comp]) 24 | 25 | // store the keys of the unique objects 26 | .map((e, i, final) => final.indexOf(e) === i && i) 27 | 28 | // eliminate the dead keys & store unique objects 29 | .filter(e => arr[e]).map(e => arr[e]); 30 | 31 | return unique; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/bubble/bubble.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/bubble/bubble.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/circle-social/circle-social.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/circle-social/circle-social.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/graphs/graphs.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/graphs/graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/modal-dialog/modal-dialog.component.html: -------------------------------------------------------------------------------- 1 | 2 | {{ title }} 3 | 4 | {{ text }} 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/modal-dialog/modal-dialog.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | nb-card { 5 | max-width: 600px; 6 | max-height: 500px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/modal-dialog/modal-dialog.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { NbDialogRef } from '@nebular/theme'; 3 | 4 | @Component({ 5 | selector: 'ngx-modal-dialog', 6 | templateUrl: 'modal-dialog.component.html', 7 | styleUrls: ['modal-dialog.component.scss'], 8 | }) 9 | export class ModalDialogComponent { 10 | @Input() title: string; 11 | @Input() text: string; 12 | 13 | constructor(protected ref: NbDialogRef) {} 14 | 15 | } 16 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/pipe/safe.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe } from '@angular/core'; 2 | import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser'; 3 | 4 | @Pipe({ 5 | name: 'safe' 6 | }) 7 | export class SafePipe { 8 | 9 | constructor(protected _sanitizer: DomSanitizer) {} 10 | 11 | public transform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl { 12 | switch (type) { 13 | case 'html': return this._sanitizer.bypassSecurityTrustHtml(value); 14 | case 'style': return this._sanitizer.bypassSecurityTrustStyle(value); 15 | case 'script': return this._sanitizer.bypassSecurityTrustScript(value); 16 | case 'url': return this._sanitizer.bypassSecurityTrustUrl(value); 17 | case 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value); 18 | default: throw new Error(`Invalid safe type specified: ${type}`); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/simple-graphs/simple-graphs.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/simple-graphs/simple-graphs.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | 3 | @include nb-install-component() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/text-cloud/text-cloud.component.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/text-cloud/text-cloud.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/text-scramble/text-scramble.component.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /frontend/src/app/pages/shared/text-scramble/text-scramble.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../@theme/styles/themes'; 2 | @import '~bootstrap/scss/mixins/breakpoints'; 3 | @import '~@nebular/theme/styles/global/breakpoints'; 4 | 5 | @include nb-install-component() { 6 | 7 | @include media-breakpoint-down(md) { 8 | } 9 | @include media-breakpoint-down(sm) { 10 | } 11 | @include media-breakpoint-down(is) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/pages/timeline/timeline.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { NbBadgeModule, NbCardModule } from '@nebular/theme'; 3 | import { NbButtonModule } from '@nebular/theme'; 4 | 5 | import { ThemeModule } from '../../@theme/theme.module'; 6 | import { TimelineComponent } from './timeline.component'; 7 | 8 | 9 | @NgModule({ 10 | imports: [ 11 | ThemeModule, 12 | NbBadgeModule, 13 | NbCardModule, 14 | NbButtonModule, 15 | ], 16 | declarations: [ 17 | TimelineComponent, 18 | ], 19 | }) 20 | export class TimelineModule { } 21 | -------------------------------------------------------------------------------- /frontend/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/.gitkeep -------------------------------------------------------------------------------- /frontend/src/assets/font/exo/Exo-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/font/exo/Exo-ExtraLight.otf -------------------------------------------------------------------------------- /frontend/src/assets/font/exo/Exo-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/font/exo/Exo-Thin.otf -------------------------------------------------------------------------------- /frontend/src/assets/font/fonts.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Roboto"; 3 | src : url("/assets/font/roboto/Roboto-Light.ttf"); 4 | } 5 | 6 | @font-face { 7 | font-family: "Exo"; 8 | src : url("/assets/font/exo/Exo-ExtraLight.otf"); 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/assets/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /frontend/src/assets/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /frontend/src/assets/images/Emiliano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Emiliano.png -------------------------------------------------------------------------------- /frontend/src/assets/images/Giba.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Giba.gif -------------------------------------------------------------------------------- /frontend/src/assets/images/Giba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Giba.png -------------------------------------------------------------------------------- /frontend/src/assets/images/Ikyv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Ikyv2.png -------------------------------------------------------------------------------- /frontend/src/assets/images/Kali.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Kali.png -------------------------------------------------------------------------------- /frontend/src/assets/images/Screens1000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Screens1000.png -------------------------------------------------------------------------------- /frontend/src/assets/images/Ubuntu1804.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/Ubuntu1804.png -------------------------------------------------------------------------------- /frontend/src/assets/images/back1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/back1.jpg -------------------------------------------------------------------------------- /frontend/src/assets/images/back1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/back1.png -------------------------------------------------------------------------------- /frontend/src/assets/images/back2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/back2.jpg -------------------------------------------------------------------------------- /frontend/src/assets/images/back2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/back2.png -------------------------------------------------------------------------------- /frontend/src/assets/images/back3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/back3.png -------------------------------------------------------------------------------- /frontend/src/assets/images/ban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/ban.png -------------------------------------------------------------------------------- /frontend/src/assets/images/blur-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/blur-bg.jpg -------------------------------------------------------------------------------- /frontend/src/assets/images/h1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/h1.jpg -------------------------------------------------------------------------------- /frontend/src/assets/images/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/h1.png -------------------------------------------------------------------------------- /frontend/src/assets/images/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/h2.png -------------------------------------------------------------------------------- /frontend/src/assets/images/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/h3.png -------------------------------------------------------------------------------- /frontend/src/assets/images/iKy-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/iKy-Logo.png -------------------------------------------------------------------------------- /frontend/src/assets/images/iKyEko15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/iKyEko15.png -------------------------------------------------------------------------------- /frontend/src/assets/images/iKySol.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/iKySol.gif -------------------------------------------------------------------------------- /frontend/src/assets/images/iKySol3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/iKySol3.gif -------------------------------------------------------------------------------- /frontend/src/assets/images/ikyDemoV1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/ikyDemoV1.png -------------------------------------------------------------------------------- /frontend/src/assets/images/ikyDemov0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/ikyDemov0.png -------------------------------------------------------------------------------- /frontend/src/assets/images/map-marker-icon-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/map-marker-icon-default.png -------------------------------------------------------------------------------- /frontend/src/assets/images/side1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/side1.png -------------------------------------------------------------------------------- /frontend/src/assets/images/ubuntu1604.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/assets/images/ubuntu1604.png -------------------------------------------------------------------------------- /frontend/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | export const environment = { 7 | production: true, 8 | }; 9 | -------------------------------------------------------------------------------- /frontend/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | // The file contents for the current environment will overwrite these during build. 7 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do 8 | // `ng build --env=prod` then `environment.prod.ts` will be used instead. 9 | // The list of which env maps to which file can be found in `.angular-cli.json`. 10 | 11 | export const environment = { 12 | production: false, 13 | }; 14 | -------------------------------------------------------------------------------- /frontend/src/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/favicon-32x32.png -------------------------------------------------------------------------------- /frontend/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/favicon.ico -------------------------------------------------------------------------------- /frontend/src/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kennbroorg/iKy/e540ac5f9001fb91f30a0a37a535cf0f883b0997/frontend/src/favicon.png -------------------------------------------------------------------------------- /frontend/src/main.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | import { enableProdMode } from '@angular/core'; 7 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 8 | 9 | import { AppModule } from './app/app.module'; 10 | import { environment } from './environments/environment'; 11 | 12 | if (environment.production) { 13 | enableProdMode(); 14 | // HACK: Override console.log in production 15 | console.log = function() {}; 16 | window.console.log = () => {}; 17 | } 18 | 19 | 20 | platformBrowserDynamic().bootstrapModule(AppModule) 21 | .catch(err => console.error(err)); 22 | -------------------------------------------------------------------------------- /frontend/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "paths": { 7 | "@angular/*": [ 8 | "../node_modules/@angular/*" 9 | ], 10 | "@nebular/*": [ 11 | "../node_modules/@nebular/*" 12 | ] 13 | } 14 | }, 15 | "exclude": [ 16 | "test.ts", 17 | "**/*.spec.ts", 18 | "../node_modules/@nebular/**/*.spec.ts" 19 | ], 20 | "include": [ 21 | "../src/*.ts", 22 | "../src/**/*.ts", 23 | "../node_modules/@nebular/**/*.ts" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /frontend/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "types": [ 7 | "jasmine", 8 | "node" 9 | ] 10 | }, 11 | "files": [ 12 | "test.ts", 13 | "polyfills.ts" 14 | ], 15 | "include": [ 16 | "**/*.spec.ts", 17 | "**/*.d.ts" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /frontend/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Akveo. All Rights Reserved. 4 | * Licensed under the MIT License. See License.txt in the project root for license information. 5 | */ 6 | 7 | /* SystemJS module definition */ 8 | declare var module: NodeModule; 9 | interface NodeModule { 10 | id: string; 11 | } 12 | 13 | declare var tinymce: any; 14 | 15 | declare var echarts: any; 16 | -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "importHelpers": true, 5 | "module": "esnext", 6 | "outDir": "./dist/out-tsc", 7 | "sourceMap": true, 8 | "declaration": false, 9 | "moduleResolution": "node", 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "target": "es2015", 13 | "skipLibCheck": true, 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2017", 19 | "dom" 20 | ], 21 | "plugins": [ 22 | { "name": "tslint-language-service"} 23 | ] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /install/docker/backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.9.2-buster 2 | 3 | WORKDIR /app 4 | 5 | COPY requirements.txt . 6 | 7 | RUN pip install -U pip 8 | RUN pip install -r requirements.txt 9 | 10 | COPY ./backend . 11 | 12 | RUN sed -i "s/CELERY_BROKER_URL.*/CELERY_BROKER_URL = 'redis:\/\/redis:6379\/0'/g" /app/factories/configuration.py 13 | RUN sed -i "s/CELERY_RESULT_BACKEND.*/CELERY_RESULT_BACKEND = 'redis:\/\/redis:6379\/0'/g" /app/factories/configuration.py 14 | 15 | RUN sed -i "s/redis:\/\/localhost/redis:\/\/redis/g" /app/factories/celery_config.py 16 | 17 | # supervisor installation && 18 | # create directory for child images to store configuration in 19 | RUN apt-get update 20 | # RUN apt-get update && \ 21 | # apt-get -y upgrade 22 | RUN apt-get -y install supervisor && \ 23 | mkdir -p /var/log/supervisor && \ 24 | mkdir -p /etc/supervisor/conf.d 25 | 26 | # supervisor base configuration 27 | ADD install/docker/backend/supervisor.conf /etc/supervisor.conf 28 | 29 | EXPOSE 5000 30 | 31 | # default command 32 | CMD ["supervisord", "-c", "/etc/supervisor.conf"] 33 | -------------------------------------------------------------------------------- /install/docker/backend/supervisor.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:celery] 5 | directory=/app 6 | command=/bin/bash -c "/app/celery.sh" 7 | killasgroup=true 8 | stopasgroup=true 9 | redirect_stderr=true 10 | stdout_logfile=/dev/fd/1 11 | stdout_logfile_maxbytes=0 12 | 13 | [program:backend] 14 | directory=/app 15 | command=/bin/bash -c "python app.py -i 0.0.0.0" 16 | killasgroup=true 17 | stopasgroup=true 18 | redirect_stderr=true 19 | stdout_logfile=/dev/fd/1 20 | stdout_logfile_maxbytes=0 21 | -------------------------------------------------------------------------------- /install/docker/frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:14 2 | 3 | # Create app directory 4 | WORKDIR /app 5 | 6 | COPY frontend/package*.json ./ 7 | 8 | # Install app dependencies 9 | RUN npm install 10 | 11 | COPY frontend . 12 | 13 | RUN sed -ie '/"start":/c\"start": "ng serve --host 0.0.0.0 --disableHostCheck",' package.json 14 | 15 | EXPOSE 4200 16 | CMD [ "npm", "start"] 17 | -------------------------------------------------------------------------------- /install/vagrant/Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.configure("2") do |config| 5 | config.vm.box = "ubuntu/bionic64" 6 | config.vm.provider :virtualbox do |vb| 7 | vb.name = "iKy" 8 | vb.memory = "4096" 9 | end 10 | config.vm.hostname = "iKy" 11 | 12 | config.vm.network "forwarded_port", guest: 4200, host: 4200, host_ip: "127.0.0.1" 13 | config.vm.network "forwarded_port", guest: 5000, host: 5000, host_ip: "127.0.0.1" 14 | config.vm.network "forwarded_port", guest: 6379, host: 6379, host_ip: "127.0.0.1" 15 | 16 | config.vm.provision "shell", path: "provision.sh", privileged: false 17 | config.vm.provision "shell", path: "stop_iKy.sh", privileged: false, run: 'always' 18 | config.vm.provision "shell", path: "start_iKy.sh", privileged: false, run: 'always' 19 | config.vm.provision "shell", path: "checks.sh", privileged: false, run: 'always' 20 | config.vm.provision "file", source: "scripts", destination: "$HOME/scripts" 21 | end 22 | -------------------------------------------------------------------------------- /install/vagrant/checks.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #set -x 3 | RED='\033[0;31m' 4 | GREEN='\033[1;32m' 5 | NC='\033[0m' # No Color 6 | 7 | echo "" 8 | echo "${NC}Running checks..." 9 | echo "Checking NODE..." 10 | 11 | CHECK_NPM=$(curl --head --silent -S localhost:4200 2>&1) 12 | STATUS=$? 13 | MSG=$(echo "${CHECK_NPM}" | head -n 1) 14 | 15 | if [ $STATUS -eq 0 ]; then 16 | echo -e "${GREEN}INFO NPM:${NC} $MSG" 17 | else 18 | echo -e "${RED}ERROR NPM:${NC} $MSG" 19 | fi 20 | 21 | echo "" 22 | echo "Checking CELERY..." 23 | CHECK_CELERY=$(curl --silent -S --header "Content-Type: application/json" --request POST --data '{"username": "x", "from": ""}' http://127.0.0.1:5000/github 2>&1) 24 | STATUS=$? 25 | MSG=$(echo "${CHECK_CELERY}" | head -n 1) 26 | 27 | if [ $STATUS -eq 0 ]; then 28 | echo -e "${GREEN}INFO CELERY:${NC} $MSG" 29 | else 30 | echo -e "${RED}ERROR CELERY:${NC} $MSG" 31 | fi 32 | 33 | echo "" 34 | echo "Checking APP..." 35 | CHECK_APP=$(curl --head --silent -S localhost:5000/tasklist 2>&1) 36 | STATUS=$? 37 | MSG=$(echo "${CHECK_APP}" | head -n 1) 38 | 39 | if [ $STATUS -eq 0 ]; then 40 | echo -e "${GREEN}INFO APP:${NC} $MSG" 41 | else 42 | echo -e "${RED}ERROR APP:${NC} $MSG" 43 | fi 44 | 45 | exit $STATUS 46 | -------------------------------------------------------------------------------- /install/vagrant/scripts/status_app.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #set -x 3 | RED='\033[0;31m' 4 | GREEN='\033[1;32m' 5 | NC='\033[0m' # No Color 6 | 7 | echo -e "${NC}Checking APP...${NC}" 8 | pid=(`pgrep -f app.py`) 9 | [[ -z $pid ]] && echo -e "${RED}ERROR: ${NC}Failed to get the PID. The process is not running" && exit 1 10 | echo -e "${GREEN}INFO: ${NC} The process is runinng PID $pid" 11 | echo $(ps -ef | grep -i app.py | grep -v grep | grep -v status) 12 | 13 | echo "" 14 | echo -e "${GREEN}Last 50 output lines${NC}" 15 | tail -n 50 $HOME/log/app.log 16 | -------------------------------------------------------------------------------- /install/vagrant/scripts/status_celery.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #set -x 3 | RED='\033[0;31m' 4 | GREEN='\033[1;32m' 5 | NC='\033[0m' # No Color 6 | 7 | echo -e "${NC}Checking CELERY...${NC}" 8 | pid=(`pgrep -f celery`) 9 | [[ -z $pid ]] && echo -e "${RED}ERROR: ${NC}Failed to get the PID. The process is not running" && exit 1 10 | echo -e "${GREEN}INFO: ${NC} The process is runinng PID $pid" 11 | echo $(ps -ef | grep -i celery | grep -v grep | grep -v status) 12 | 13 | echo "" 14 | echo -e "${GREEN}Last 50 output lines${NC}" 15 | tail -n 50 $HOME/log/celery.log 16 | -------------------------------------------------------------------------------- /install/vagrant/scripts/status_frontend.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #set -x 3 | RED='\033[0;31m' 4 | GREEN='\033[1;32m' 5 | NC='\033[0m' # No Color 6 | 7 | echo -e "${NC}Checking FRONTEND...${NC}" 8 | pid=(`pgrep -f "ng serve"`) 9 | [[ -z $pid ]] && echo -e "${RED}ERROR: ${NC}Failed to get the PID. The process is not running" && exit 1 10 | echo -e "${GREEN}INFO: ${NC} The process is runinng PID $pid" 11 | echo $(ps -ef | grep -i "ng serve" | grep -v grep | grep -v status) 12 | 13 | echo "" 14 | echo -e "${GREEN}Last 50 output lines${NC}" 15 | tail -n 50 $HOME/log/npm.log 16 | -------------------------------------------------------------------------------- /install/vagrant/scripts/status_redis.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #set -x 3 | RED='\033[0;31m' 4 | GREEN='\033[1;32m' 5 | NC='\033[0m' # No Color 6 | 7 | echo -e "${NC}Checking REDIS...${NC}" 8 | pid=(`pgrep -f redis`) 9 | [[ -z $pid ]] && echo -e "${RED}ERROR: ${NC}Failed to get the PID. The process is not running" && exit 1 10 | echo -e "${GREEN}INFO: ${NC} The process is runinng PID $pid" 11 | echo $(ps -ef | grep -i redis | grep -v grep | grep -v status) 12 | 13 | echo "" 14 | echo -e "${GREEN}Last 50 output lines${NC}" 15 | tail -n 50 $HOME/log/redis.log 16 | -------------------------------------------------------------------------------- /install/vagrant/start_iKy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Executing START after RELOAD..." 4 | cd $HOME 5 | echo "Starting Redis..." 6 | touch $HOME/log/redis.log 7 | redis-server > $HOME/log/redis.log 2>&1 & 8 | sleep 1 9 | tail -n 50 $HOME/log/redis.log 10 | echo " " 11 | echo "Starting Celery..." 12 | cd $HOME/iKy/backend 13 | touch $HOME/log/celery.log 14 | ./celery.sh >$HOME/log/celery.log 2>&1 & 15 | sleep 3 16 | tail -n 50 $HOME/log/celery.log 17 | echo " " 18 | echo "Starting App..." 19 | cd $HOME/iKy/backend 20 | touch $HOME/log/app.log 21 | python3.7 app.py -i 0.0.0.0 >$HOME/log/app.log 2>&1 & 22 | sleep 3 23 | tail -n 50 $HOME/log/app.log 24 | echo " " 25 | echo "Starting Frontend..." 26 | cd $HOME/iKy/frontend 27 | touch $HOME/log/npm.log 28 | npm start >$HOME/log/npm.log 2>&1 & 29 | sleep 180 30 | tail -n 50 $HOME/log/npm.log 31 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | chardet==3.0.4 2 | aiohttp==3.8.4 3 | beautifulsoup4==4.9.3 4 | httpx[http2] 5 | Flask==3.0.0 6 | celery==5.2.7 7 | Flask-Cors==4.0.0 8 | requests==2.27.0 9 | bs4==0.0.1 10 | cfscrape==2.1.1 11 | tweepy==4.5.0 12 | tweety-ns @ https://github.com/mahrtayyab/tweety/archive/main.zip 13 | geopy==1.22.0 14 | git+https://github.com/KennBro/yagooglesearch.git@origin/add-output-param#egg=yagooglesearch 15 | socialscan==2.0.0 16 | instaloader==4.12 17 | requests-futures==1.0.0 18 | torrequest 19 | holehe==1.61 20 | search-engine-parser==0.6.8 21 | # git+https://github.com/KennBro/search-engine-parser.git@origin/KALI/2022.2#egg=search-engine-parser 22 | fuzzywuzzy==0.18.0 23 | redis==3.5.3 24 | langdetect==1.0.8 25 | # googletrans==3.0.0 26 | TranslatorX==1.2 27 | vaderSentiment==3.3.2 28 | emailrep==0.0.4 29 | stop_words 30 | spotipy==2.16.1 31 | twitch-python 32 | parse 33 | browser-cookie3 34 | google-api-python-client==2.33.0 35 | python-Levenshtein 36 | requests_html 37 | fontawesome==5.10.1.post1 38 | peopledatalabs==3.1.3 39 | playwright==1.30.0 40 | TikTokApi==6.3.0 41 | --------------------------------------------------------------------------------