{"id":13583291,"url":"https://github.com/yuis-ice/visited","last_synced_at":"2025-03-31T15:30:29.631Z","repository":{"id":40990130,"uuid":"379498784","full_name":"yuis-ice/visited","owner":"yuis-ice","description":"Securely collect browsing history over browsers.","archived":false,"fork":false,"pushed_at":"2021-07-16T10:52:25.000Z","size":28,"stargazers_count":87,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-14T02:02:19.857Z","etag":null,"topics":["archival","brave-browser","brave-extension","browser-extensions","browser-history","chrome-browser","digital-history","extension-chrome","firefox-extensions","incognito-mode","opera-addon","opera-browser","ownyourdata","personal-data","privacy-by-design","self-hosted","selfhosting","sqlite3-database","tampermonkey-script","web-platform"],"latest_commit_sha":null,"homepage":"https://yuis-programming.com/visited-app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuis-ice.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-23T06:14:22.000Z","updated_at":"2025-02-13T06:41:14.000Z","dependencies_parsed_at":"2022-09-15T14:41:43.187Z","dependency_job_id":null,"html_url":"https://github.com/yuis-ice/visited","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuis-ice%2Fvisited","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuis-ice%2Fvisited/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuis-ice%2Fvisited/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuis-ice%2Fvisited/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuis-ice","download_url":"https://codeload.github.com/yuis-ice/visited/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246350640,"owners_count":20763221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archival","brave-browser","brave-extension","browser-extensions","browser-history","chrome-browser","digital-history","extension-chrome","firefox-extensions","incognito-mode","opera-addon","opera-browser","ownyourdata","personal-data","privacy-by-design","self-hosted","selfhosting","sqlite3-database","tampermonkey-script","web-platform"],"created_at":"2024-08-01T15:03:23.062Z","updated_at":"2025-03-31T15:30:29.354Z","avatar_url":"https://github.com/yuis-ice.png","language":"JavaScript","funding_links":[],"categories":["Uncategorized","JavaScript"],"sub_categories":["Imgur"],"readme":"\n# Visited-CLI\n\n\u003c!-- Securely collect browsing history over browsers with search capability and extras --\u003e\nSecurely collect browsing history over browsers.\n\n## Getting started  \n\nHere is the getting started guide. \n\nFirstly, clone the git, and change to the directory.\n\n```\n$ git clone [repo url] \u0026\u0026 cd visited \n```\n\nAnd install the node packages.\n\n```\n$ npm install \n```\n\nNext, generate a client program for browser. Run the following.\n\n```\n$ node visited.js --generate\n✔ Port number? [default: 5555] …\nFile generated: ./visited.user.js\n```\n\nNow you have `visited.user.js` file generated, copy and paste the file content as your new userscript on your favorite userscript manager e.g. [tampermonkey](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en)\n\nAlso note that you can paste the same to your browsers, Chrome profiles, and virtually integrate browsing history at the one place. \n\nNext, start the server. Use `-s` or `--server`. Also note that `--quiet` for background run, `--port` for specifying the port number. \n\n```\n$ node visited.js --server\n```\n\nNow you're ready. Try go to any website, let's say youtube.com, and reload page (or just visit from the omnibox). \n\nYou can see the server detects your visiting and automatically saves the URL, host, date to the database `visited.db`.\n\n```\n$ node visited.js --server\nserver started...\nmessage: {\"url\":\"https://www.youtube.com/\",\"host\":\"www.youtube.com\"}\n```\n\nNow you can use a sqlite client such as [DB Browser for SQLite](https://sqlitebrowser.org/dl/), or built-in searching options, just like the following. \n\n```\n$ node visited.js --search --host youtube.com\n[\n    {\n        \"id\": 1,\n        \"url\": \"https://www.youtube.com/\",\n        \"host\": \"www.youtube.com\",\n        \"date\": \"6/23/2021, 3:52:02 PM\",\n        \"timestamp\": 1624431122\n    }\n]\n```\n\nThe search term is regex compatible. This shows the same result as the above. \n\n```\n$ node visited.js --search --url 'you.*be\\.com'\n```\n\n## Requirements\n\n```\ngit\nbuild-essential\nnode\nsqlite3-pcre (for searching)\n```\n\n## Help \n\n```\n$ node visited.js\nUsage: visited [options]\n\nOptions:\n  -s, --server               set command type: server\n  -p, --port \u003cport\u003e          (server) specify port number (default: 5555)\n  -t, --timezone \u003ctimezone\u003e  (server) specify timezone (default: \"Asia/Tokyo\")\n  -q, --quiet                (server) disable log\n  -s, --search               set command type: search\n  -r, --regex                (search) enable regex extension for search (default: true)\n  -u, --url \u003curl\u003e            (search) search by url (default: \".\")\n  --host \u003chost\u003e              (search) search by host (default: \".\")\n  --order \u003corder\u003e            (search) set order for search [desc, asc] (default: \"desc\")\n  --limit \u003cnumber\u003e           (search) set limit for search (default: -1)\n  -F, --format \u003cformat\u003e      (search) output format [json, url] (default: \"json\")\n  --pcre-path \u003cfile\u003e         set sqlite3 pcre file path for search (default: \"/usr/lib/sqlite3/pcre.so\")\n  -d, --database \u003cfile\u003e      specify database file for index/search (default: \"./visited.db\")\n  --generate                 generates client side userScript file\n  --delete-database          delete database\n  -y, --yes                  no confirmation prompt\n  -h, --help                 display help for command\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuis-ice%2Fvisited","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuis-ice%2Fvisited","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuis-ice%2Fvisited/lists"}