mottie / github-userscripts Goto Github PK
View Code? Open in Web Editor NEWUserscripts to add functionality to GitHub
Home Page: https://greasyfork.org/en/users/24847
License: MIT License
Userscripts to add functionality to GitHub
Home Page: https://greasyfork.org/en/users/24847
License: MIT License
Let me explain a little background, recently i was sued by some company and the police didn't tell me more than that it was about some "github repo". In order to be cooperative and increase my chances of the lawsuit being dropped i decided to not delete my account but rather get github premium and make all my repos private until i get information what repo this stuff is about. After purchasing premium i was shocked to see that it doesn't apply to all organisations (i have many repos outsourced) and that i can't bulk edit my stuff. The police was kind enough to tell me that it was one of the repos on my account so i was not worried about the orgs anymore but i had to go through the process of editing the setting of 200+ repos by hand which was kind of a pain in the ass and took me some time but i did it anyway for legal reasons. Now that the case has been dropped i don't need github premium anymore, i had more time and a free head to think about it. I contacted github support about that and asked them why there is no way to bulk edit your stuff because the FAQ states that i will loose all private repos when my gh premium status gets revoked for whatever reason. They said they can't do sh*t and gave me some API endpoints, but i don't feel confident enough to do anything with it so i wanted to ask you if you could help me (and maybe others that want to switch from premium to free and have a bunch of repos on private) by creating something to convert multiple repos at once. I don't really care if it's a "bot" or a website or a userscript.
Reported at Greasy Fork.
As reported in https://greasyfork.org/en/forum/discussion/11754/x; filing here to ease tracking of resolution :-)
If I view a PR's main page with the monospace font toggle userscript enabled, the cog icons on the right hand side for setting projects, labels, milestones, assignees all vanish. This makes the userscript effectively unusable.
Hey Rob!
So I spent some time digging through the darned GH site code (my head hurts now) and after taking your rawlinks script as a guide (JS not my primary lang) began and fairly quickly now feeling defeated on one of those things I've been putting off it seems forever that seems to still be missing from any available GH enhancements out there.
From talking to others I know I'm not the only one that frequently (despite yes, using official Git) either prior to deciding to do an official local clone to work on, or simply for backup/analysis of my or some other repo, utilizing the GH web Clone or Download \ Download Zip
button. Be it on different branches, etc.
So, now to where I had always felt there was room for a "wouldn't that be cool" that over the years has become "I'm really tired of having to...." is:
Clicking on the Download Zip
enhanced to append the commit-tease-sha
(short-sha) element text at the end of the target filename. Today, re-saving the repo only results in "Repo-master(1).zip","Repo-master(2).zip"
so what an excellent idea to instead, through userscript magic, make it automatically save/suggest as "Repo-master(07f668c)","Repo-master(210f04)"
since personally, that is now what I wind up having to do by hand to better identify the downloaded version(s).
This itself introduces a challenge I had not considered until diving in - when you look at the HREF the zip is named based on the branch (master.zip
/develop.zip
/etc.) however is really only a fallback because the header returned hands the browser (if it's listening) the Content-Disposition: attachment
header at which time the browser suggests/defaults to in GH case: <reponame>-<branchname>.zip
. This is why if you do a standard wget or curl you get master-zip
, and if you open Chrome and click you get Repo-master.zip
. So, there is that challenge to deal with and I have seen decent examples of utilizing the header in XMLHttpRequest()
, but still hitting a brick wall at the design phase as to the best approach.
Clicking on the same Download Zip
also enhanced to appending 3 new list elements below the (hopefully enhanced) ZIP file download button. Perform an API lookahead (this is where the rawlinks I thought could be helpful since I eventually realized it needs to do basically the exact same thing you did there but in repo/releases) to the releases page, pull UP TO the first three (3) most recent (let's say strictly the ZIP files for simplicity). I did come up with nice jquery code right before it occurred I should instead be using the API and I had totally wasted my time :(.
I really really cannot believe nobody has written even just the releases one since the binary releases are so commonly downloaded and most are only interested in the more current and want to perhaps see the comparison to the prior release for possible rollback. If this is perhaps something you would ever want to work on I will certainly share the (apparently little) I have determined (I have narrowed down I believe some of the key element selector/paths etc.). I just recall when we discussed the rawlinks how fast you churned that out, and being that much of these two enhancements (I think) is already just perhaps a regurgitation/rework of that same script maybe you'd look and think this would be just as easy for you. :)
TIA!
Hey Mottie!
Since you have by far created the most comprehensive (and most functional) GM/TM userscripts for Github, I have one I've been trying to figure out myself that is a hole that nobody has yet filled. Perhaps this simply cannot be accomplished via userscript but I'll post here to get your thoughts.
Site/Match: gist.github.com
Functionality: Gists - the one "button" nobody has managed to add that is sorely needed is, upon executing a GIST search, a new "RAW" button for each gist returned to allow a direct pull of the raw source. Currently, you must first visit each Gist, then either click the "Raw", or an added "Rawgit" button, etc. It is a bit absurd that each file must be individually opened first before then having to click RAW to save it.
Optional: An optional add either with this or probably should be a whole new request (but I'm lazy tonight) is to add the (still - unbelievably) totally void/missing DATE SORT of Gists returned from search. They (can) actually be sorted but there is no graphical method today on the page and I and others have literally been posting and complaining to Github for many years begging for this and other basic search features to be added. At least this one can be added by the community ourselves and I'm surprised nobody has added this one too.
Again your scripts are becoming an everyday requirement for Github users, and frankly Github should be paying you because they also really just make Github more fun to use!
@Mottie First of all, thanks a lot for this great script!
I was wondering whether it's possible to make a script to sort the comments based on the reactions in a practical way ! You really nailed it, once again! 👏
I just have one suggestion, please:
Currently, having two rows of button blocks (one of the post itself and the second by the script)
makes it distracting and difficult for me to visually distinguish them.
My suggestion is to collapse out of view (- in a similar way to that of your script "GitHub Reveal Header"- maybe collapse the block by temporarily converting it to a thin line/separator) the block of buttons on mouseaway from that element. And:
Please see my mockup below to better see what I mean.
I know the script in it's initial version - I just wanted to post my suggestion and I hope you like it. 🙂
Example screenshot:
And a mockup:
PS. I've tried implementing my suggestion myself but unfortunately it seems too difficult for me, that's why I didn't provide a PR instead.
Thanks for another great userscript!
I just noticed this minor issue: (using GCN 1.0.3 in FF48 x64 in win10 with GM 3.8)
there's a slight truncation in the icons' left side.
Here is a (resized) screenshot where I highlight the truncation (it's a few pixels) :
-using a clean FF profile with only (GM and) GCN-
And here is when the truncation doesn't occur:
It occurs in e,g,
https://github.com/
https://github.com/Mottie/GitHub-userscripts
It doesn't occur:
https://github.com/greasemonkey
https://github.com/greasemonkey/greasemonkey/wiki
Having unread notifications (i.e. having the dot on the bell icon) or not, doesn't make a difference.,
Just wanted note that TOC Github userscript isn't not compatible with Table of Contents for GitHub addon
I'm using github-code-show-whitespace.user.js
and Tampermonkey with Chrome 62 on macOS. That's the only script I'm currently using.
In this diff I stop getting the toggle button at library/cleanup.php
and all the files below it.
this is my scripts:
https://greasyfork.org/zh-CN/scripts/29107-gist-raw-button
I hope this feature can be add to:
Regarding the 'GitHub Files' Filter script:
currently when clicking a toggle button, its background color changes after moving the mouse away, not when clicked.
I find it confusing, and difficult to tell whether I've pressed the button or depressed it, especially in conjunction with the 'GitHub Dark' userstyle
I believe it would be more practical if its background color was changed when clicked, i.e. instantly.
What's your opinion, @Mottie ?
STR
In a clean Chrome 65 profile with only Tampermonkey 4.6.5752 beta installed and GIH script v1.0.7,
open https://github.com/gorhill/uBlock/issues/3689
and follow the '#3680 (comment)' link inside the comment:
the linked-to comment in the target page won't be highlighted.
There's no error in Console.
PS. For reference, for other links to comments, such as the one displayed in the script info page gif: i.e. the comment link inside the 1st comment in https://github.com/isaacs/github/issues/665
,
the script still works ok.
I am using version Chrome Version 71.0.3578.98, 1.2.4 of the GitHub code show whitespace script and the split view for diffs. I am not sure if this is how things always were displayed but I noticed that each line is being prefixed with a white space character. It even seems to throw off the display of lines that only contain line breaks.
This is the scss file as displayed with the script
This is that same scss file as displayed in my editor with whitespace displayed
Notice line 8 in the editor vs how its displayed in the diff, specifically the way it seems to wrap.
Is there something I should be doing differently?
As reported in https://greasyfork.org/en/forum/discussion/11754/x; filing here to ease tracking of resolution :-)
Whenever I have the GitHub code show whitespace active, I cannot move cards between columns in GitHub projects.
The Toggle Issue Comments userscript doesn't hide comments by default, which makes perfect sense. However the check mark (tick) symbol only appears to the right of a category after clicking a category of comment to hide that category, which I find very unintuitive and in fact the exact opposite of what I'd expect.
For example if Reviews (outdated)
has a check mark next to it, it is more logical to expect that outdated reviews would be displayed rather than hidden, because check marks universally have a positive connotation. The only category of comment which gets this right is Hide +1s
, because it makes it clear that when you select that category, the comments are hidden rather than displayed.
A similar problem is that the categories are emboldened when selected, and again except for Hide +1s
this is counter-intuitive.
So I'd suggest one of two things:
Hide
, orHide +1s
to +1 comments
.The first is slightly ugly, but the second could confuse some people who already adapted to the existing behaviour. Pick your poison, or maybe come up with a third approach which has neither of these problems ;-) Either way, I really think it needs to be made more intuitive, and the inconsistency between Hide +1s
and all the others fixed.
Having said all that, this is a totally awesome extension, so thanks a lot for writing and sharing it!!
As reported at https://greasyfork.org/en/forum/discussion/11753/x; filing here to ease tracking of resolution :-) Thanks!
Using Chrome 69/Firefox 62 (also in fresh profiles), TM 4.8.5850 beta, GitHub Toggle Issue Comments 1.3.2.
Unfortunately clicking on the avatars in the popup menu no longer toggles the comments from the relevant users.
There's no error in Console.
I tried GitHub code show whitespace today, and found that it only shows leading and trailing spaces & tabs. There is another script that does show the inline whitespaces, and I was wondering if you can implement this too.
Hello!
I've tried to setup plugin but no luck.
In the help section it said that: "Open the settings panel by pressing "F1" (default setting)"
But f1 doesn't work. I've tried via greasemonkey in Firefox and tempermonkey in Chrome.
I've tried to change "f1" onto "g h" directly in code of script, but It didn't work.
OS: Mac OS X 10.11
All browsers (Firefox, Chrome) are latest version.
Hi there
Sorry for the silly question but how do you include the code into my md file?
I have tried
<html>
<head>
<script src="https://github.com/Mottie/GitHub-userscripts/blob/master/github-copy-code-snippet.user.js"></script>
</head>
regards
Balint
STR
Using TM 4.5.5663beta in Firefox 58 or TM 4.5 in Chrome 63:
install latest versions of:
'GitHub Collapse In Comment' 1.0.13
'GitHub Toggle Code Wrap' 1.1.3
'GitHub Copy Code Snippet' 0.1.0
here is a long code example:
SublimeLinter: error in SublimeLinter daemon:
SublimeLinter: --------------------
SublimeLinter: Traceback (most recent call last):
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\queue.py", line 57, in loop
item = self.q.get(block=True, timeout=self.MIN_DELAY)
File "./python3.3/queue.py", line 175, in get
queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\queue.py", line 65, in loop
self.lint(view_id, timestamp)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\queue.py", line 111, in lint
self.callback(view_id, timestamp)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\sublime_linter.py", line 263, in lint
Linter.lint_view(view, filename, code, hit_time, callback)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\linter.py", line 1008, in lint_view
callback(cls.get_view(vid), linters, hit_time)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\sublime_linter.py", line 316, in highlight
highlights.draw(other_view)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\highlight.py", line 133, in draw
all.draw(view)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\highlight.py", line 477, in draw
icon = self.get_style("icon", style, error_type)
File "C:\Users\Kostas\AppData\Roaming\Sublime Text 3\Packages\SublimeLinter\lint\highlight.py", line 184, in wrapper
return persist.gutter_marks["icons"][error_type]
KeyError: 'warning'
SublimeLinter: --------------------
Additionally, the two scripts 'GitHub Toggle Code Wrap' and 'GitHub Copy Code Snippet'
work ok by themselves, but their icon is displayed on top of one another.
and so, in order to be able to use them, you have to have only one enabled at a time.
https://blog.github.com/changelog/2019-01-04-sticky-coversation-headers/
The title and status on issues and pull request conversations now persists in a sticky header – giving you more context when scrolling through long conversation threads.
The following is a Firefox/Greasemonkey-only issue:
in Chrome 53/Tampermonkey 4.1.10 the issue doesn't occur.
Using GCM v1.1.3 with GM 3.9 in FF 49 (win 10 x64).
The script was no longer collapsing Markdown in any GitHub page.
To make sure I tried in a fresh FF profile with only GM installed and the script
and opened as a reference https://github.com/sinatra/sinatra
(i.e. is the page that you used in the screen capture) :
no content was collapsed.
I was getting
missing = in const declaration GitHub_Collapse_Markdown.user.js:233:13
in Browser Console.
So, changing lines 233 and 240
from
for (const el of els) {
to
for (let el of els) {
fixes the issue.
I've noticed this minor issue in user repos lists: (GSC 1.0.3 in FF 48, GM 3.9, win 10):
the sort up/down arrow is not displayed (initially),
and when you click in the area to sort then the sort arrow is displayed multiple times filling the row.
Screenshot from e.g. https://github.com/addyosmani?tab=repositories
STR
In a clean Chrome 65 profile with only Tampermonkey 4.6.5752 beta installed and GSR script v0.2.2:
open https://github.com/gorhill/uMatrix/issues/928
and click on the 'speak no evil monkey' avatar sort icon 3 times: notice that the comment order is not restored.
With all other avatar sort icons, the comment order is restored ok.
In https://github.com/gorhill/uMatrix/issues/968
or https://github.com/gorhill/uMatrix/issues/567
,
if you click 3 times either the 'speak no evil monkey' avatar icon or the 'sort by +1' avatar icon , the initial comment order is not restored.
With the other avatar sort icons, the comment order is restored ok.
Just discovered this awesome gold-mine of userscripts - many thanks for sharing these! Please can you update the README.md to clarify where we should send bug reports? I'm assuming it's either right here in this repo's issue tracker, or as discussions on Greasy Fork, but it would be helpful to document this for the benefit of all future users. Thanks!
The script for adding custom hotkeys breaks if a repo owner partially matches any of Github's reserved names. For example, hotkeys don't work on git-for-windows/git because it has 'windows' in the owner's name.
This seems to be caused by JS testing a regex at all positions in a given string instead of only at the start (even without a global flag):
GitHub-userscripts/github-custom-hotkeys.user.js
Lines 56 to 80 in a591264
GitHub-userscripts/github-custom-hotkeys.user.js
Lines 98 to 102 in a591264
I think this issue can be safely fixed by surrounding the regex with ^
and $
.
P.S. Also it seems like the {me}
scope is always undefined:
GitHub-userscripts/github-custom-hotkeys.user.js
Lines 91 to 93 in a591264
Hi,
Is there an option to show the whitespace/tab characters by default ?
Thanks a lot and Thank you for your scripts !
Clement
Using 'GitHub Toggle Issue Comments' script version 1.1.2
with GM 3.17 in Firefox 56.01
Example link:
https://github.com/Microsoft/vscode/issues/11847
There are 3 such entries in that page (one is a group with 3 entries, the other two are single) .
I quote from the script code:
refs: {
isHidden: false,
name: "ghic-refs",
selector: ".discussion-item-ref, .discussion-item-head_ref_deleted",
label: "References"
},
Unfortunately the above selector .discussion-item-ref, .discussion-item-head_ref_deleted
no longer works:
these entries now have a single class name instead, the plain: .discussion-item
, as I noticed.
This class name is also given (among others) to other entries.
@Mottie, if that helps you, I think that a simple way to identify such entries is to check if their .className === 'discussion-item' && .classList.length === 1
.
PS. Btw, I've checked most other entry times (in other issue pages) and they all still work ok (I didn't find appropriate issue pages to check the: Integrations and the 'Diff current/outdated' entries)
My suggestion is to add a toggle button to hide the filter buttons that have no content.
Depending on the page, the filters list becomes half or less, leaving only the applicable filters visible.
Example comparison:
What I have in mind:
@Mottie , what do you say?
I thought of making a PR instead of an issue,
but unfortunately I don't feel confident enough to share the needed code as a PR.
Nevertheless, hoping to facilitate you:
The quick CSS I added to the script's GM_addStyle command to get this is:
.ghic-menu > .dropdown-item:not(.ghic-has-content) { display:none; }
The following code seems to add the extra button ok: (I converted the eye-slash icon to base64):
var referenceNode = document.querySelector('.select-menu-modal-holder .select-menu-title');
var a = document.createElement('input');
referenceNode.appendChild(a);
a.style.padding = '0px 12px';
a.setAttribute('type', 'image');
a.setAttribute('src', 'data:image/jpeg;base64,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bnRGI1JsdAAAAAAAAAAAAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAAAAAEGNyb3BXaGVuUHJpbnRpbmdib29sAAAAAA5jcm9wUmVjdEJvdHRvbWxvbmcAAAAAAAAADGNyb3BSZWN0TGVmdGxvbmcAAAAAAAAADWNyb3BSZWN0UmlnaHRsb25nAAAAAAAAAAtjcm9wUmVjdFRvcGxvbmcAAAAAADhCSU0D7QAAAAAAEABgAAAAAQACAGAAAAABAAI4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAB44QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA1cAAAAGAAAAAAAAAAAAAAAKAAAADgAAABEAMgAwADEAOAAtADAAOQAtADIAMgBfADEAOAA1ADUAMAA1AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAOAAAACgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAACgAAAABSZ2h0bG9uZwAAAA4AAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0A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ZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjI1MjZmNTg1LWJlODItMTFlOC1iOGYyLWQ4MGI1YjAzZDI2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3M2FlZWFmZC1mZjhlLTc1NGMtYjI4Yy02MTdmNDUzOTEyMTciIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0iQjM2NEUzRTZCRDNFQ0RGOThBRUQ0N0I4OEQ3RTEwOEQiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wOkNyZWF0ZURhdGU9IjIwMTgtMDktMjJUMTg6NTU6MDYrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTA5LTIyVDE5OjExOjIxKzAzOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE4LTA5LTIyVDE5OjExOjIxKzAzOjAwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDU2NjFkMWUtN2ZhOS0zMzQwLTgzNDYtMzZjNjYxMzg0YjdmIiBzdEV2dDp3aGVuPSIyMDE4LTA5LTIyVDE5OjExOjIxKzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjczYWVlYWZkLWZmOGUtNzU0Yy1iMjhjLTYxN2Y0NTM5MTIxNyIgc3RFdnQ6d2hlbj0iMjAxOC0wOS0yMlQxOToxMToyMSswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+4ADkFkb2JlAGRAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQoJCg0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgACgAOAwERAAIRAQMRAf/dAAQAAv/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7d/zlt5m/PPzH5s8keVfJnmLUYPP/m/zTqXkq0/LeDWrnQrXQlupo30vXZrKwlt7nVrdtPs7uf6w8rwRykj0w0TR5TocXj5I4pSI8SHFOY/yPh+rLGMeUZR4oDHM3LLRlH05MQhflyeDgyZOH+7MeEdMgl6Y+vqDOX7yMfpqIkKx5ZT73B5Ztrj8vrv/AJx60m71TW/I9n5ebQvN10kyjWtD1canALHXW1BWDnUr2WZ9QazdmnXhGw9N29ObYR1UDI5DAeEAAIkkR4K8M6WJ5TPg+niH93m4oylKOSHh62WimIxxDIRmMiSdzc/r8Y/zYxzVCianiPFEAY53/9D6sfnB/wCTc/LP/lAf+UQ8/f8AKY/70f7yaf8A7zf8un/Lb/xXlY+jU8v7g/1f7yH99/tX6eFvP0Y+f9/j5f8AC830f7Z/N/o2uX/1mh//ACTf/HC/Z/8AJZf3g+1/y5/xpmdH/GD/AHnIf1+XTz73X/5D+Hn/AJvN/9k=');
a.id = 'toggleFilters';
document.getElementById('toggleFilters').addEventListener('click', function() {
GM_addStyle(`.ghic-menu > .dropdown-item:not(.ghic-has-content) { display: block; }`);
});
On a sidenote, I've noticed
in this example page https://github.com/Microsoft/vscode/issues/58724
that the filter "+1 Comments" gets the .ghic-has-content
class,
although there are no +1 comments in the page.
Do you have to use F1 to open the settings? If so is there another way to change it because F1 (Search + 1) opens chromebook help on a chromebook.
I am considering adding a userscript that lets you add clickable buttons with user defined links (suggested in a refined-github issue by @ben-eb)...
The following things need to be addressed:
Could we have the table of content buttoin also on github.io
that would be awesome
Currently it works for commits, such as: zenorocha/sublime-javascript-snippets@a9d8787
but not pull requests: https://github.com/zenorocha/sublime-javascript-snippets/pull/28/files
It would be great if you added support for pull requests to your very useful script.
I think that the change needed for this is to change line 42 from:
links = $$("#toc ol.content li > a");
to
links = document.querySelectorAll("#toc ol.content li > a, div.select-menu-list > div > a");
and line 65 from
if ($("#files.diff-view")) {
to
if ($("#files.diff-view") || $(".pr-toolbar")) {
The problems that I still have are:
Next button
in the PR link above,txt = txt.substring(txt.lastIndexOf("/") + 1, txt.length);
should be combined with:
var regex = /[\s]*\+[\d\+\-\s\−]*([\w\\.]*)/;
txt = txt.match(regex)[1];
using something like:
if (window.location.href.indexOf("/commit/") !== -1) {
...
} else if (window.location.href.indexOf("/pull/") !== -1) {
...
}
How much effort is it to make the GitHub Sort Content script also work for gitlab.com markdown tables?
I would also consider contributing the enhancement myself. I guess once I figured out the difference compared to the github.com markdown rendering it should not be very difficult.
Just adding the @include rule is not enough, I've already tried that.
Using Chrome 69, TM 4.8.5850 beta, GitHub Toggle Issue Comments in 1.2.2.
The issue is that, in the specific following PR page (I couldn't find any other pages to recreate)
https://github.com/sindresorhus/refined-github/pull/1526
the script's filters are non-toggleable and disabled, and I get the following error in Chrome's Console:
Execution of script 'GitHub Toggle Issue Comments' failed! Cannot read property 'textContent' of null
referring to line 404 of the script which contains:
txt = el.textContent.trim();
Even if Start with blocks collapsed?
is set to false
, the blocks are still automatically collapsed when an issue loads.
With the recent update to Firefox (FF57, aka Quantum) Greasemonkey devs have decided to change their API from synchronous functions GM_*
to async methods of the GM
object. This means that starting with GM4 (the first version compatible with FF57+) all scripts that used any of those functions will no longer work.
As an example, your awesome script for GitHub custom hotkeys in FF57+GM4 dies with "Script error: ReferenceError: GM_getValue is not defined" in the console.
A suggested workaround is to include an official polyfill for the old API. Also, I think most of them can be safely replaced with native fetch
and localStorage
.
Hi again dear @Mottie
Unfortunately I just found another issue:
in some issue pages I tried,
when both "GitHub Toggle Issue Comments" and "GitHub Sort Reactions" are installed,
there's a unneeded 1 hidden (from hidden comments)
under the first post
STR
https://github.com/Microsoft/vscode/issues/58712
or https://github.com/Microsoft/vscode/issues/59142
1 hidden (from hidden comments)
under the first post.I'd love a toggle to collapse inline comments in the files view of a PR, with a "toggle all" button and individual toggles on each comment.
Use case: for PRs that are complicated or need a bunch of background knowledge, my team likes to sprinkle in explanatory comments to help reviewers… but that can make the PR look intimidating, and can make reviewing harder for people who don't need the explanations.
Presumably not a small project. I'd be happy to donate towards this
Thanks for all the great tools!
Hello, I just found the "GitHub remove diff signs" userscript, thanks for making it.
But it seems to have a bug, the +
and -
signs doesn't get removed from all files in the "Files changed" tab of some pull requests.
Here's an example with 6 files:
https://github.com/Mottie/tablesorter/pull/195/files
the signs have been removed from the first 5 files, but they are still shown in the last file: js/jquery.tablesorter.js
.
And here's another example with 17 files:
https://github.com/Mottie/tablesorter/pull/1293/files
the signs have been removed from the first 3 files, but they are still there from the 4th file: js/widgets/widget-filter-formatter-html5.js
down.
Here's an example with 4 files. The first two files are hidden until one clicks on them:
https://github.com/Mottie/Keyboard/pull/363/files
the first one says:
"Load diff
Large diffs are not rendered by default."
and the second file says:
"Load diff
Some generated files are not rendered by default. Learn more."
The signs on the last 2 files are shown. When one clicks on the first 2 files to show their diffs, then the signs are still visible on them as well.
The script seems to work fine on the pull requests I've seen with only 1 or 2 files.
Windows 10 1607 (OS Build 14393.953)
Google Chrome 56.0.2924.87 (Official Build) (32-bit)
Tampermonkey v4.2.7
GitHub Remove Diff Signs 1.0.2
Using 'GitHub Toggle Issue Comments' script version 1.0.26
with either GM 3.11 in Firefox 53.0.3 (even in clean profile)
or TM 4.2.7 in Chrome 58.
The issue is that no avatars are added under the Hide Comments from
text:
only 1 (empty) placeholder (i.e. the <img>
tag for that empty placeholder has src="undefined"
.)
is displayed instead.
Here is a screenshot (from an issue link example with 12 commenters ) to better show what I mean:
There's no error in Browser Console while this happens.
I checked the addAvatars()
function
but unfortunately couldn't locate what's the cause of this.
Hey Rob!
I see the update on Dec 14th seems to indicate using a modifier, but all I see now when I click the raw links is a spinning Github logo and the links never appear. Since it was just updated 2 weeks ago, am I just maybe missing something new I need to do? I'm trying to go through the code now I really did not compare the changes with the last update since I always trust your scripts......
Thanks!
Collin
EDIT: Now it appears with this last update it is just incompatible with the Github Dark script (StylishThemes) which has never had any issue before. Any idea offhand what might be causing the incompatibility? Only when I disable that script does this one again work. I'll start trying to debug as well but it sucks because I absolutely need all the functionality that comes with both. :(
Github Costom Hotkey
do not work with safari 12.0.1
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.