├── .github └── ISSUE_TEMPLATE │ └── bug_report.md ├── README.md └── workaround-scripts ├── Example.jpg ├── README.md ├── tampermonkey-filter-group-posts-by-user.js ├── tampermonkey-fix-customizer-layout.js ├── tampermonkey-fix-private-message-scrolling.js ├── tampermonkey-fix-styles.js ├── tampermonkey-issue11.js └── tampermonkey-no-dashboard-new-tab.js /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report about an issue on Thingiverse 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **REMINDER** 11 | 12 | This is an unofficial issue tracker maintained by a volunteer who has no connections with Thingiverse or Makerbot. 13 | 14 | Please only submit important things. It is obvious they have trouble even fixing urgent matters, so they certainly won't have time to add some feature to improve luxury. Also, please remain polite. 15 | 16 | Try to describe the issue in a way as as detailed as possible, for instance make a list of steps to trigger the error, or attach a screenshot. 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # I WILL NO LONGER MAINTAIN THIS. 2 | 3 | See [issue #35](https://github.com/DrLex0/ThingiverseIssues/issues/35). 4 | 5 | I might still update the workaround scripts from time to time, although I avoid using the Thingiverse website altogether and I recommend the same to anyone else. The glory days of Thingiverse are over. It is now owned by people who don't care about maintaining a community of 3D printing enthusiasts at all. There are better sites now in that regard, like [the one from PrusaPrinters](https://www.prusaprinters.org/prints). 6 | 7 | 8 | # Please stop using Thingiverse. Really. 9 | 10 | It surprises me to see how much activity there still is on Thingiverse, despite its increasingly sorry state. I guess the site is still profiting from its former good reputation, riding the wave of its former glory days when it used to be a vibrant open source community where everyone shared their creations. **Those days are over.** 11 | 12 | I suspect that some 3D printers are still being sold with documentation that refers to Thingiverse, because it used to be *the place to be* in the early days of the consumer 3D printing revolution around the year 2010. Unfortunately it no longer is the place to be, it is now *a place to avoid.* 13 | 14 | Makerbot, who owned Thingiverse, was bought by Stratasys. This means Stratasys has inherited Thingiverse as well, and it is extremely obvious that as a big commercial company selling mostly industrial 3D printers, Stratasys does not give a damn about Thingiverse. Yet, they do not seem to dare to outright kill the website, maybe because of its legendary reputation, or maybe they are bound through some contract to keep it alive. Instead of simply nuking the site, they decided to slap advertisements onto it, originating from dubious sources that will sometimes attempt to install malware or advertise dubious products and services. I suspect that the plan—if there is any plan at all—is to make the site slowly decay into an unusable mess, such that they have an excuse to finally shut it down at some point. 15 | 16 | The main reasons why you should not be using Thingiverse today: 17 | 1. All the features that made it fun to use in the past, are gone. No more challenges, no more contests, no more featured models, nothing. You cannot even download all files of a design at once in a single zip file, they simply removed that feature. You now have to click every separate file. The only thing they have added, are obnoxious advertisements that will sometimes try to install malware or advertise things you don't want anyone to see appearing on your screen. 18 | 2. The website is full of bugs that never get fixed, because the company owning the site does not care. 19 | 3. The only changes the “maintainers” of Thingiverse seem to make, are geared towards keeping ad revenue running. This means for instance making it impossible to download models when there is even the slightest suspicion that you are using an ad blocker. They don't care that this protection also triggers at inappropriate moments, because there are many indications that whoever is in charge of the website, is an extremely short-sighted greedy parasite. 20 | 4. From my experience as a software developer, I can recognize the telltale signs that Thingiverse is maintained on a shoestring budget, with at most 2 developers (probably just one) getting very little time allowance to work on it. Changes are being made directly to the production servers with little to no testing. Things that should never break, break. If one thing does get fixed, the fix causes several other things to break. The design of the webpages is poor and looks like various popular libraries were hastily thrown together. Thingiverse is an excellent example of how *not* to maintain a website. Even if you do not know anything about software or website development, you should know that you as an end-user will be affected by this. Your experience as a user of the website will be very bad and frustrating. 21 | 5. Because the website is run on an extremely tight budget, the server infrastructure must be woefully under-dimensioned, and this is evidenced by the site being very slow or unresponsive at times. It also explains why models are randomly deleted, because this reduces storage requirements. 22 | 6. There is **no** communication. None whatsoever, except maybe one pathetic tweet once a year. All the community moderators from the former glory days have been fired, or have quit. Everything now happens behind the scenes, obviously because that single developer barely gets enough time to try to fix things, let alone communicate about it with the rest of the world. Usually the only indication that something has changed, is because something that previously worked, is now broken. There is no real way for you as a user to report issues. Don't bother with the site feedback forum on Thingiverse, it is a joke. There is no feedback. There are no updates when something is changed, and there is no indication of future plans for the website. This is inexcusable for a present-day website. 23 | 7. Uploads are randomly deleted, and even when they aren't, it is possible nobody will find your uploaded models because of all the bugs that never get fixed. Thingiverse's search function is broken very often, or is totally unpredictable. 24 | 8. The whole future of Thingiverse is bleak and very uncertain. Uploading to the website is a very big gamble. 25 | 26 | Don't step into the pitfall of “but, it's for free!” You will invest time and effort into trying to use the website and working around all its broken features. If you upload models, you will be investing creativity and extra effort to get the models uploaded. As it seems now, all that investment risks being thrown away in the not too far future. You'd better invest it elsewhere. 27 | 28 | The only thing that could save Thingiverse, would be if Stratasys sells it to a group of people who do care about it, and bring back at least some of its former glory (and actually have the time to fix all its issues). But I'm afraid that is not going to happen anytime soon. 29 | 30 | *What follows is the obsolete description of the now defunct issue tracker that was the original purpose of this GitHub repository. There is little point in reading it, the most important text is above, and the only other thing that may be of some use, are the TamperMonkey workaround scripts.* 31 | 32 | 33 | # Thingiverse Issue Observation Thingamajig 34 | 35 | This is an **UNOFFICIAL** tracker for current issues on the [Thingiverse](https://www.thingiverse.com) website. **I am NOT affiliated with Thingiverse or Makerbot/Stratasys in any way.** I am just one of the many users who are annoyed by the lack of support and maintenance on the website. I am merely trying to better document what is wrong with the site. I cannot do anything to fix anything about the website, the only thing I can do is report issues here and hope someone at Thingiverse finds this and uses it to fix at least the most pressing issues. 36 | 37 | Please remain friendly in issue comments or I will just take this down again. I don't want to be rewarded for this volunteer effort with the honour of becoming a punch bag for frustration towards Makerbot/Stratasys. 38 | 39 | 40 | ## Issue Ranking 41 | 42 | Because GitHub doesn't have an obvious way to rank issues, I will list the (maximum) 20 most important issues here, ranked (in my opinion) from most to least pressing. This may not be entirely up-to-date, look at the [specific issues](https://github.com/DrLex0/ThingiverseIssues/issues) for the latest info. 43 | 44 | For discussions on specific issues, go to the [issues section](https://github.com/DrLex0/ThingiverseIssues/issues). You can add new ones, but please refrain from adding issues for extremely trivial things or requests for fancy new features. It is obvious that Makerbot have few resources to fix even the worst issues, so swamping them with a long list of minor things won't help in any way. 45 | 46 | If you have good evidence that one of these issues is fixed, please close its issue ticket after adding a comment to it with the evidence. 47 | 48 | 1. [Need more transparency regarding website status and future plans](https://github.com/DrLex0/ThingiverseIssues/issues/4) 49 | 2. [Thingiverse Stakeholders are not valuing the need for community participation in 3d Printer Market Growth](https://github.com/DrLex0/ThingiverseIssues/issues/29) 50 | 3. [Previews of STL files, Thingiview, or photos, are often broken](https://github.com/DrLex0/ThingiverseIssues/issues/28) 51 | 4. [ZIP files are not updated and contain wrong images](https://github.com/DrLex0/ThingiverseIssues/issues/25) 52 | 5. [Bad UI design of the Groups leads to double, triple, quadruple posts](https://github.com/DrLex0/ThingiverseIssues/issues/7) 53 | 6. [Aspect ratios and cropping of uploaded photos are a mess](https://github.com/DrLex0/ThingiverseIssues/issues/27) 54 | 7. ["Recently Made" section on front page no longer updated](https://github.com/DrLex0/ThingiverseIssues/issues/21) 55 | 8. [Large GIF files must be banned](https://github.com/DrLex0/ThingiverseIssues/issues/33) 56 | 9. [Some Things cannot be found](https://github.com/DrLex0/ThingiverseIssues/issues/22) 57 | 10. [Customizer is broken very often](https://github.com/DrLex0/ThingiverseIssues/issues/5) 58 | 11. [In (paginated) Groups/Forums, only the first page can be seen](https://github.com/DrLex0/ThingiverseIssues/issues/6) 59 | 12. [Download and view counts highly inaccurate](https://github.com/DrLex0/ThingiverseIssues/issues/19) 60 | 13. [Collections count is incorrectly set to Makes count, often making collections inaccessible](https://github.com/DrLex0/ThingiverseIssues/issues/9) 61 | 14. [ZIP file does not contain full Thing description](https://github.com/DrLex0/ThingiverseIssues/issues/13) 62 | 15. [Full screen view in gallery is useless](https://github.com/DrLex0/ThingiverseIssues/issues/10) 63 | 16. [Link to original photo in gallery is often unclickable](https://github.com/DrLex0/ThingiverseIssues/issues/11) 64 | 17. [Default license setting does nothing](https://github.com/DrLex0/ThingiverseIssues/issues/14) 65 | 18. [Website encourages ‘laundering’ of Thing licenses](https://github.com/DrLex0/ThingiverseIssues/issues/15) 66 | 19. [Shoddy anti-spam system in Groups and comments](https://github.com/DrLex0/ThingiverseIssues/issues/16) 67 | 20. [Models Posted by Some Users Never Appear in the Newest Listings](https://github.com/DrLex0/ThingiverseIssues/issues/18) 68 | 69 | 70 | ## Hints to Thingiverse users to reduce stress on the servers and improve usability 71 | 72 | * When creating a new Thing, first **prepare all your text offline** in a text editor. Then copy-paste this into the new Thing page. If it fails, then you won’t have lost all your work, just can just try it again. 73 | * When you remix a Thing, make sure to **set a correct license** because the site will not do this for you. The license of your Thing must not be less restrictive than the most restrictive license of any of its remix sources. For instance, a remix of two Things, one with an “Attribution - Non-Commercial - Share Alike” license and another with an “Attribution” license, must have an “Attribution - Non-Commercial - Share Alike” license. 74 | * **Do not keep hitting the submit button in groups/forums.** If it doesn’t respond within a few seconds, just wait longer, or open the group in another tab to see if your message isn’t already there, before trying to send it again. If you do find multiple copies of your post, delete the duplicates, but it is better to avoid having to do this altogether because it spams everyone's dashboard notifications. 75 | * Please **downscale** overly large photos before uploading them. Nobody is interested in zooming in on your photos to see how noisy the image sensor in your phone is because the manufacturer wanted to put a higher number of megapixels on the spec sheet. It is possible for visitors to view photos in their full resolution, although this requires jumping through some hoops. In practice, almost everyone will only see the gallery images, so it is most important to make those look right. Bigger photos only take longer to process and put more stress on the already overloaded servers. Gallery images are rescaled to fit within 628×472 pixels. Due to bugs recently introduced, your uploaded photos must have this same 4:3 aspect ratio or otherwise the gallery images will be deformed or cropped. I always upload my photos at exactly twice that size (1256×944), which is plenty in most cases. Rescaling a photo in Paint, OS X Preview, GIMP, or some online tool, is not rocket science. And please use **JPEG** for camera photos, not PNG! PNG is only efficient for computer-generated drawings with large areas in the exact same color. If an image file (not a 3D file of course) is much larger than 1 MB whatever the format, it is needlessly large. 76 | * Upload at least one actual photo of your *printed* Thing and make it the first gallery image. Even when the server is choking or the STL preview generator is broken yet again, your Thing is then likely to at least have a visible thumbnail. Otherwise everybody will only see a gray rectangle with a cogwheel for hours, days, or even weeks. If you don’t have a 3D print to take a photo of, then in my opinion you shouldn’t even be uploading the model to the site. I tend to completely ignore Things that only have the default blue 3D model thumbnail. 77 | * Do not try to use animated GIFs as gallery photos or profile pictures. They will seem to work initially, but once the servers have finally chewed on the ridiculously large file, it will have been converted to a static JPEG. During the time your GIF file survives, people will have downloaded way more data than they expect, and the servers will have been unnecessarily stressed ([issue #33](https://github.com/DrLex0/ThingiverseIssues/issues/33)). *GIF is not suitable for video, period.* Upload videos to YouTube, and put the link in the description to get a video in the gallery that always works and does not force people to pull in tens of megabytes of very poorly compressed video. The only vaguely acceptable use for an animated GIF, is as an image in a separate section of the Thing description. There it will not be converted and keep working. Still, anything larger than a few megabytes should be converted to a video file instead. 78 | 79 | 80 | ## Workarounds 81 | 82 | In the `workaround-scripts` directory you may find TamperMonkey/GreaseMonkey UserScripts that work around certain issues. Use at your own risk. I have only tested these scripts (if any) with TamperMonkey in Chrome. 83 | 84 | Scripts for other issues are welcome! You can send them through a pull request or any other means. 85 | 86 | 87 | ## A bit of background 88 | 89 | The reason why I made this, is because even though it may not be obvious to new users, the Thingiverse website is in a rather sorry state. There are many issues with core functionality, like uploading new Things or Makes. In any other website of this caliber, it would be easy to report such issues to the maintainers and they would be fixed in a matter of days, at most weeks. Not so in Thingiverse: there is no real official communication channel. There is very little sign of life from whoever is responsible, heck, it isn't even clear who is responsible at all. Issues keep being present for months, sometimes even years. Most novice users are still brave enough to try to report issues in the group forums. From my more than 3 years of experience with the site however, it seems that nobody at Makerbot really reads those forums, especially not since the last few years after certain moderators had left the site. (Remember [glitchpudding](https://www.thingiverse.com/glitchpudding/about)? If you don't, then in my opinion you cannot know how much the site has degraded in the past few years.) 90 | 91 | It seems the whole website now runs on its own like a runaway train, with only some minimal intervention when things get too obviously bad for too long. From what I have heard, Makerbot (or its parent company Stratasys), the company that owns and manages Thingiverse, does not consider it a profitable website. Of course it is hard to quantify how sales of 3D printers would be affected if this gigantic repository of free-to-download shared 3D models would disappear, but this lack of interest from their part is the main reason why the amount of maintenance assigned to the site is very minimal. Of course this results in very slow responses to issues on the website. 92 | 93 | My impression of what is happening here, is the following. I suspect that during management meetings, Thingiverse is treated as some kind of appendix whose usefulness is heavily doubted because the paper pushers do not see concrete revenue figures from it. They don't really dare to axe it, so instead they have reduced its resource allocations to the bare minimum. Every few months, one or two random Makerbot employees seem to be picked to take a look at this site which they are probably unfamiliar with, and they get a budget of a fixed number of days (hours?) to work on fixing problems. They then try to hack some fixes or new features into the probably horrible codebase, and leave behind these hacks to spawn new issues to be ‘solved’ by the next randomly picked persons. This is only a guess of mine based on observations from the last 3 years, but I work for a company that makes a product that has a large web-based UI part, and I have some experience and education in recognizing bad development practices without even looking at the code. 94 | 95 | In my opinion, Makerbot should either: 96 | - try to get a little bit of visible revenue from the site, be it through a few ads on the main page, such that there is an actual budget for maintaining it. This could convince the paper-pushers to allocate more resources to it. 97 | - or, gather a community of motivated volunteers who will maintain the site for free, or in return for some small reward like discounts on certain products. There are certainly some people out there who have both the motivation and the technical knowledge to fix the most obvious issues in the above list. 98 | 99 | 100 | ## Additional Reading 101 | 102 | I have written [an extended rant about the state of Thingiverse at the end of 2019](https://blobblubblobblog.blogspot.com/2019/12/the-state-of-thingiverse-end-of-2019.html) on my blog. 103 | 104 | Also interesting is [this blog post](https://xyzdims.com/2019/11/21/misc-formnext-2019-aka-just-too-much-for-one-day/) which contains a report of actual communication with someone responsible for the Thingiverse website. Unfortunately it mostly confirms my suspicions… For instance when I wrote above: “one or two random Makerbot employees seem to be picked to take a look at this site,” I was kind of hoping this would be an exaggeration, but apparently it isn't. 105 | -------------------------------------------------------------------------------- /workaround-scripts/Example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DrLex0/ThingiverseIssues/624c4776c71a4096dbcfbbb966768d6e8dc560b3/workaround-scripts/Example.jpg -------------------------------------------------------------------------------- /workaround-scripts/README.md: -------------------------------------------------------------------------------- 1 | # TamperMonkey workaround scripts for the Thingiverse website 2 | 3 | These scripts require the TamperMonkey (or compatible) browser extension. 4 | 5 | They try to fix some of the most annoying problems with the Thingiverse website by modifying its HTML code on-the-fly. 6 | If it isn't obvious from the script's name, look at its `@description` line to see what it does. 7 | For instance a highly recommended script is `tampermonkey-fix-styles.js` which will make text on the website much more readable than with its default preposterous trendy tiny pale font that was chosen by someone who hates people with less than superior eyesight. 8 | 9 | ![Style fix example](Example.jpg) 10 | 11 | Use at your own risk. I have only tested these scripts (if at all) with TamperMonkey in Chrome. 12 | Because MakerBot changes the website at random moments without warning, these scripts may stop working at any moment. File an issue or create a pull request if you know how to fix a script. But the most effective solution is to just stop using Thingiverse altogether and move to a better alternative like Printables. 13 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-filter-group-posts-by-user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse remove annoying users' comments 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.4 5 | // @description Filter out group messages from users that post stuff you don't care about. 6 | // @author Dr. Lex 7 | // @include https://www.thingiverse.com/groups/* 8 | // @include https://www.thingiverse.com/dashboard* 9 | // @grant none 10 | // ==/UserScript== 11 | 12 | // Edit this list to your likings. Mind that this is case-sensitive. 13 | // Any similarity between this example and real usernames is purely coincidental. Ahem. 14 | var filterUsers = ["CpCaveman", "Terminus"]; 15 | 16 | var filterSlash = []; 17 | filterUsers.forEach(function(x) { 18 | filterSlash += ["/" + x]; 19 | }); 20 | 21 | function hack() { 22 | 'use strict'; 23 | var dashboardLinks = document.getElementsByClassName('comment-body content-box full-width'); 24 | for(var i = 0; i < dashboardLinks.length; i++) { 25 | if(! dashboardLinks[i].firstElementChild) { 26 | // Be robust against the utter incompetence of the website maintainers 27 | continue; 28 | } 29 | if(dashboardLinks[i].firstElementChild.className == "comment-header") { 30 | var userLink = dashboardLinks[i].firstElementChild.firstElementChild; 31 | if(userLink.nodeName == "A" && filterSlash.indexOf(userLink.getAttribute("href")) > -1) { 32 | var userName = userLink.getAttribute("href").substr(1); 33 | dashboardLinks[i].innerHTML = "You don't want to read this comment by " + userName + ""; 34 | } 35 | } 36 | } 37 | }; 38 | 39 | window.setTimeout(hack, 500); 40 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-fix-customizer-layout.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse fix cramped Customizer UI 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.1 5 | // @description Fix this stupid flaw, the fact that this has been broken for months is just baffling. 6 | // @author Dr. Lex 7 | // @include https://www.thingiverse.com/apps/customizer/* 8 | // @grant none 9 | // ==/UserScript== 10 | 11 | // NOTE: even with this fix, Customizer tends to be broken a lot of the time, or is horribly slow, 12 | // and even if it works, the preview is very primitive. You're better off following these instructions: 13 | // https://www.dr-lex.be/3d-printing/customizer.html 14 | 15 | var triesLeft = 5; 16 | 17 | function hack() { 18 | 'use strict'; 19 | triesLeft--; 20 | var appFrame = document.getElementById('app_frame'); 21 | if(appFrame) { 22 | // This should already be present. Apparently sometimes it isn't? Force it to try using all available space. 23 | appFrame.style.height = 'calc(100vh - 230px)'; 24 | // and to ensure the preview fits: 25 | appFrame.style.minHeight = '642px'; 26 | } 27 | else { 28 | console.log("Customizer fix failure: app_frame not found. Tries left: " + triesLeft); 29 | if(triesLeft > 0) { 30 | window.setTimeout(hack, 1000); 31 | } 32 | } 33 | }; 34 | 35 | 36 | window.setTimeout(hack, 500); 37 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-fix-private-message-scrolling.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse fix lack of scroll in private messages 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.2 5 | // @description Workaround that re-adds scrolling to private message threads 6 | // @author Dr. Lex 7 | // @include https://www.thingiverse.com/messages:* 8 | // @grant none 9 | // @run-at document-idle 10 | // ==/UserScript== 11 | 12 | function GM_addStyle(css) { 13 | const style = document.getElementById("GM_addStyle_TIVfix_02") || (function() { 14 | const style = document.createElement('style'); 15 | style.type = 'text/css'; 16 | style.id = "GM_addStyle_TIVfix_02"; 17 | document.head.appendChild(style); 18 | return style; 19 | })(); 20 | const sheet = style.sheet; 21 | sheet.insertRule(css, (sheet.rules || sheet.cssRules || []).length); 22 | } 23 | 24 | function hack() { 25 | // This is quick and very dirty. Not sure if it will work if there are multiple pages. 26 | GM_addStyle ( ` 27 | .message-replies > .message-reply 28 | { 29 | height: 100%; 30 | } 31 | `); 32 | } 33 | 34 | window.setTimeout(hack, 250); 35 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-fix-styles.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse fix eyesore styles 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.6 5 | // @description Workaround for stupid tiny pale text and other dumb styles in the new site design 6 | // @author Dr. Lex 7 | // @match https://www.thingiverse.com/thing:* 8 | // @match https://www.thingiverse.com/make:* 9 | // @grant none 10 | // @run-at document-idle 11 | // ==/UserScript== 12 | 13 | function GM_addStyle(css) { 14 | const style = document.getElementById("GM_addStyle_TIVfix_01") || (function() { 15 | const style = document.createElement('style'); 16 | style.type = 'text/css'; 17 | style.id = "GM_addStyle_TIVfix_01"; 18 | document.head.appendChild(style); 19 | return style; 20 | })(); 21 | const sheet = style.sheet; 22 | sheet.insertRule(css, (sheet.rules || sheet.cssRules || []).length); 23 | } 24 | 25 | // The horrible class names make it seem as if this is randomly generated junk that can break at any time. 26 | // Use the power of wildcards to combat this risk, because I have seen the class names being changed indeed. 27 | // This is all quick & dirty because I don't want to spend much time on something that can change at any time. 28 | 29 | function hack() { 30 | // Get rid of the preposterous tiny pale fonts that are just downright stupid. 31 | GM_addStyle ( ` 32 | [class*="_commentBody-"] p, 33 | [class*="_thingDetails-"] p, 34 | [class*="_thingDetails-"] li, 35 | [class*="BlockDetails__listItem-"] 36 | { 37 | padding: 15x 20px; 38 | color: #000 !important; 39 | opacity: 1.0 !important; 40 | font-size: medium !important; 41 | line-height: normal !important; 42 | } 43 | `); 44 | GM_addStyle ( ` 45 | [class*="BlockDetails__blockTitle-"] { 46 | color: #000 !important; 47 | font-weight: bold !important; 48 | font-size: x-large !important; 49 | } 50 | `); 51 | GM_addStyle ( ` 52 | [class*="_contentTitle-"] { 53 | color: #000 !important; 54 | font-weight: bold !important; 55 | font-size: large !important; 56 | } 57 | `); 58 | GM_addStyle ( ` 59 | [class*="_commentTextArea-"] { 60 | font-size: .9em !important; 61 | } 62 | `); 63 | 64 | // Undo the stupid forcing of links onto a separate line. 65 | GM_addStyle ( ` 66 | [class*="_description-"] p a { 67 | display: inline; 68 | word-break: normal; 69 | ` 70 | ); 71 | } 72 | 73 | window.setTimeout(hack, 250); 74 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-issue11.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse fix 'full screen' gallery title 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.2 5 | // @description Workaround for issue #11 6 | // @author Dr. Lex 7 | // @include https://www.thingiverse.com/thing:* 8 | // @include https://www.thingiverse.com/make:* 9 | // @grant none 10 | // ==/UserScript== 11 | 12 | (function() { 13 | 'use strict'; 14 | var thingGalleryTitle = document.querySelector('.item-page-header .item-page-info h1'); 15 | if(thingGalleryTitle) { 16 | thingGalleryTitle.style.whiteSpace = 'nowrap'; 17 | thingGalleryTitle.style.textOverflow = 'ellipsis'; 18 | } 19 | else { 20 | console.log("Cannot hack thing gallery title: element not found"); 21 | } 22 | })(); 23 | -------------------------------------------------------------------------------- /workaround-scripts/tampermonkey-no-dashboard-new-tab.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Thingiverse no dashboard opening in new tab 3 | // @namespace https://github.com/DrLex0/ThingiverseIssues 4 | // @version 0.2 5 | // @description 1999 called, they want their “target="_blank"” back. Let the user decide whether to open things in a new window. 6 | // @author Dr. Lex 7 | // @include https://www.thingiverse.com/* 8 | // @grant none 9 | // ==/UserScript== 10 | 11 | function hack() { 12 | 'use strict'; 13 | var dashboardLinks = document.getElementsByClassName('LinkButton__linkButton--U_cBr PageHeader__dashboardLink--10X_9'); 14 | if(dashboardLinks) { 15 | dashboardLinks[0].removeAttribute('target'); 16 | } 17 | else { 18 | console.log("Cannot hack dashboard link: element not found"); 19 | } 20 | }; 21 | 22 | // Delay execution because this crap seems to be dynamically loaded and sometimes we're too early. 23 | window.setTimeout(hack, 1000); 24 | --------------------------------------------------------------------------------