by @tomastrajan
Enhancements for your Medium stats page! Get insight into summary of your total article views, reads, fans...
Get it at Chrome Web Store
Google Chrome Extension for enhanced Medium stats! Get insight into total view count with new table summary row...
Home Page: https://chrome.google.com/webstore/detail/medium-enhanced-stats/jnomnfoenpdinfkpaaigokicgcfkomjo
License: MIT License
by @tomastrajan
Enhancements for your Medium stats page! Get insight into summary of your total article views, reads, fans...
Get it at Chrome Web Store
I am signed into Medium on Chrome and the Stats page is in the tab with focus. Clicking on the Medium Enhanced Stats extension does nothing. The large circle in the center rotates endlessly. Nothing happens.
Currently, Medium notifications are just a single indicator with a number of total new notifications and a list of all these notifications after user click the button.
It would be great to have 4 different notification indicators for every notification type. The reasoning behind this is that the "response" notification is much more important that the "claps" notification.
The implementation would be similar as stats-total.js
a script that is loaded and runs on every medium page. The script will load notifications and replace old indicator with the new ones. New script can be called notifications.js
and can be added to manifest.json
file in the content_scripts
property so that it runs on every Medium page.
Adding of a remote error logging is bringing its first results with the following error...
We have to investigate why this could happen and make a code more robust to handle such cases gracefully.
json: category:BrowserJsException
sessionId: 440f9bf2-cc05-43a7-98b7-b52be738c57a
exception:
colno:387
lineno:50
message: Uncaught TypeError: Cannot set property 'innerHTML' of null
stack:TypeError: Cannot set property 'innerHTML' of null
at updateTableRows (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/stats/stats-total.js:278:26)
at a.combineLatest.pipe.subscribe [as _next] (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/stats/stats-total.js:36:26)
at a.__tryOrUnsub (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:88:95)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:86:350)
at a._next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:460)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:131)
at a.debouncedNext (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:163:187)
at a.hc (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:70:267)
at a._execute (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:108:449)
at a.execute (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:108:270)
url:chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js
After exporting stats as CSV for both (personal and publication) "users", the downloaded file name honors the publication name but it only include my stories instead of all stories from the publication.
Extension v5.5.1
.
Adding of a remote error logging is bringing its first results with the following error...
We have to investigate why this could happen and make a code more robust to handle such cases gracefully.
category: BrowserJsException
sessionId: 440f9bf2-cc05-43a7-98b7-b52be738c57a
exception:
colno:387
lineno:50
message: Uncaught TypeError: Cannot read property 'querySelector' of null
stack: TypeError: Cannot read property 'querySelector' of null
at updateTableSummary (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/stats/stats-total.js:186:21)
at a.state$.subscribe.s [as _next] (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/stats/stats-total.js:29:3)
at a.__tryOrUnsub (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:88:95)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:86:350)
at a._next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:460)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:131)
at a._next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:128:915)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:131)
at a._next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:174:921)
at a.next (chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js:84:131)
url:chrome-extension://jnomnfoenpdinfkpaaigokicgcfkomjo/src/libs/rxjs.js
Hey @tomastrajan I am a graphic designer. I support them by making design contributions to open source projects. You can see my works from my profile. I liked the Medium Enhanced Stats chrome extension. And I designed a logo. I hope you need a logo. You can see my designs below.
Do you like it? Which do you like if you like it? Do not hesitate to tell if there is something you want to change or add.
I will be waiting for your feedback ..
Hi Tomas,
Thank you for all the wonderful work on this extension! It really is awesome!
I have created my own extension, which is heavily based on your work. I am stripping it down more and more, though, so I am not sure what will be left of it by the time I am done.
I noticed in your code on stats-total.js, that there are loads of .subscribe-statements. I was a bit bugged that the extension keeps on trying to update more table-rows, so I wanted to prevent that from happening. I read your post on unsubscribing, but I have to say I cannot be sure what is happening in your code.
So, this is a question:
I take it that those subscriptions just keep on adding and given enough time, will cause some sort of problems.
I recently started my journey in javascript, so there is a definite chance I misunderstand the mechanics.
Thanks in advance!
Enhance Medium stats table with sticky header when scrolling down the long stats table by overriding CSS (in stats/stats-total.css
).
Table header is at the top of the table but it can get confusing which columns means what when scrolling through long stats table...
It would be much more user friendly to have a sticky stats header table...
While I like this extension a lot I'm always missing it when I'm on Safari.
If you think it would be a good idea to publish it as an extension there also, we can investigate what would be the best approach and I can make some time to help with this.
Would be really great to be able to get a breakdown by hour. Impossible for me to work out when to publish at the minute.
I would not be able to do any of the javascript work for this but have some experience with web scraping and a lot with Python if I could help in any way.
Hey Tomas,
I'm not entirely sure where the stats come from under the hood, because it looks like you're not doing any DOM traversal. In the stats folder, I found this code, which I guess is what stopped working this week?
function loadData() {
log('load data');
return new Promise((resolve) =>
chrome.runtime.sendMessage({ type: 'GET_TOTALS'}, {}, data => resolve(data)));
}
function loadPostStats(postId) {
log('load post stats');
return new Promise((resolve) =>
chrome.runtime.sendMessage({ type: 'GET_POST_STATS', postId }, {}, data => resolve(data)));
}
Let me know if I can be any help tackling this issue! Cheers and thanks for the great extension!
It would be very cool to add Author information to stats. This would enable to count how many different authors contributed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.