Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - intari/readingtracker: Reading Tracker: Now you are in control of what you read · GitHub
Skip to content

Repository files navigation

Update 2023+:

  • Mantano reader is ancient and no longer works on modern versions of android anyway.
  • License modification: If you develop reading app for andorid (or android and other platforms) - you can use all my code from this repo for any purpose you want (even if you reader is closed-source), it would be nice if you send me link to your app.

What's this?

Application to collect data on your reading habits. Which books you read. When you read. How much you read. So you could analyze this data for yourself.

How it works? (Non-technical)

In the beginning there was a phrase "The Amazon Kindle reports which pages of which books the user looks at, and when"...but I wanted this information too, for e-books I read using e-book readers I read.

How it works? (Technical)

Android Accessibility APIs are used to 'read' parts of supported e-book reader's views. Data are to Parse cloud service for later processing and analysis. After that e-mails are send to me using Mandrill and record is added to my Evernote notebook using Zapier. In future various interesting graphs could be made once I collect enough statistics

Plans for future

  • Make it possible to actually view your stats data using on-device interface and not only in e-mails

Application requirements

Android 5.0.1 Lollipop support

  • As of version 1.6.8 application should work correctly with Lollipop

Android 6.0 Marshmallow support

  • Version 1.8.1 works with Android 6.0

  • Android 7.0 support

  • Not even tested yet

Which e-book readers are supported?

Currently all editions of Mantano Reader are supported (it's great. Please buy it. If you want to used it on multiple devices you should buy their cloud subscription too). Others are not supported yet. Please note authors of ebook readers don't endorse this app.

How to use application (assuming you use Google Play version):

  • Install one of supported ebook readers
  • Install this app
  • enable access to accessibility services for app
  • open & read books from reader's Library view
  • you could confirm everything was detecred correctly by opening app again and checking if it saw details
  • when you close book you will get e-mail from my bot intari@viorsan.com. Bot's message will be in Russian if bot thinks you are speak Russian or in English in other cases.

What about analytics, Evernote integration, E-Mail support?

Analytics will be possible in future versions. Ability to setup integration with Zapier web-hooks (support for Evernote was done this way) is not yet available in application's interface but available by requesting author.

Which Android Permissions are used and why

Permissions for currently released version.

  • RECEIVE_BOOT_COMPLETED - to be able to catch moments when you start read
  • INTERNET - communication with our server
  • ACCESS_NETWORK_STATE - usage analytics and error reporting.
  • WRITE_EXTERNAL_STORAGE - automatic updates of non-PlayStore versions using HockeyApp
  • BIND_ACCESSIBILITY_SERVICE - main app functionality. you will be asked to provide access to 'Accessibility Services' on startup. You could refuse but you will not be able to get your statistics from this device

Licenses

My own code is licensed under GPLv3, exception is given to link all libraries I link to (Parse,etc). I reserve right to change this at any time Other things:

Is it in Google Play Store / other Android Markets?

Privacy Policy (for PlayStore version)

Data collected by application will only be used to provide services to app user. Collected data won't be sold, used for spam or other bad things. I reserve right to provide data collected by app from you if applicable goverment authority asks for your data.

Application uses several 3rd-party services (Parse, Mailgun, Mixpanel,etc) to provide some functionality. Main database is now hosted in EU

Where are sources for Reading Tracker Server?

  • Not in this repository. Basic logic works without it.

Do I have to create account/login?

  • No, you don't have to. Notification with data will be shown anyway if that's you need.

Requirements for building

see end of [README_old] (https://github.com/intari/readingtracker/blob/master/README_old.md)

Badges

GetBadges Game

About

Reading Tracker: Now you are in control of what you read

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages