├── .github ├── FUNDING.yml └── workflows │ └── build.yml ├── .gitignore ├── .prettierignore ├── theme ├── theme.scss └── main │ ├── components │ ├── footer │ │ └── footer.scss │ ├── components.scss │ ├── popups │ │ └── title-info.scss │ ├── titlebar │ │ └── titlebar.scss │ ├── menu │ │ └── menu.scss │ └── cards │ │ └── cards.scss │ └── pages │ ├── list │ ├── most-popular-movies.scss │ ├── top250.scss │ └── list.scss │ ├── persons │ └── persons.scss │ ├── pages.scss │ ├── tv-shows │ └── tv-shows.scss │ ├── watchlist │ └── watchlist.scss │ ├── what-to-watch │ └── what-to-watch.scss │ ├── episodes │ └── episodes.scss │ ├── search │ └── search.scss │ ├── home │ └── home.scss │ └── movies │ └── movies.scss ├── assets ├── tv.png ├── tv2.png ├── tv3.png ├── footer.png ├── home.png ├── home2.png ├── list.png ├── menu.png ├── search.png ├── top250.png ├── tv-clean.png ├── home-clean.png ├── home2-clean.png ├── list-clean.png ├── menu-clean.png ├── tv2-clean.png ├── tv3-clean.png ├── footer-clean.png ├── search-clean.png ├── top250-clean.png └── better-styles │ ├── cast.png │ ├── cards.png │ ├── cards-better-styles.png │ └── cast-better-styles.png ├── .prettierrc.json ├── package.json ├── LICENSE ├── scripts └── build.js └── README.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: Tetrax-10 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dev 2 | dist 3 | node_modules 4 | todo.txt 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | LICENSE 2 | package-lock.json 3 | node_modules -------------------------------------------------------------------------------- /theme/theme.scss: -------------------------------------------------------------------------------- 1 | @use "main/components/components"; 2 | @use "main/pages/pages"; 3 | -------------------------------------------------------------------------------- /assets/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv.png -------------------------------------------------------------------------------- /assets/tv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv2.png -------------------------------------------------------------------------------- /assets/tv3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv3.png -------------------------------------------------------------------------------- /assets/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/footer.png -------------------------------------------------------------------------------- /assets/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/home.png -------------------------------------------------------------------------------- /assets/home2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/home2.png -------------------------------------------------------------------------------- /assets/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/list.png -------------------------------------------------------------------------------- /assets/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/menu.png -------------------------------------------------------------------------------- /assets/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/search.png -------------------------------------------------------------------------------- /assets/top250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/top250.png -------------------------------------------------------------------------------- /theme/main/components/footer/footer.scss: -------------------------------------------------------------------------------- 1 | footer.imdb-footer { 2 | display: none; 3 | } 4 | -------------------------------------------------------------------------------- /assets/tv-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv-clean.png -------------------------------------------------------------------------------- /assets/home-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/home-clean.png -------------------------------------------------------------------------------- /assets/home2-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/home2-clean.png -------------------------------------------------------------------------------- /assets/list-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/list-clean.png -------------------------------------------------------------------------------- /assets/menu-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/menu-clean.png -------------------------------------------------------------------------------- /assets/tv2-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv2-clean.png -------------------------------------------------------------------------------- /assets/tv3-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/tv3-clean.png -------------------------------------------------------------------------------- /assets/footer-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/footer-clean.png -------------------------------------------------------------------------------- /assets/search-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/search-clean.png -------------------------------------------------------------------------------- /assets/top250-clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/top250-clean.png -------------------------------------------------------------------------------- /assets/better-styles/cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/better-styles/cast.png -------------------------------------------------------------------------------- /assets/better-styles/cards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/better-styles/cards.png -------------------------------------------------------------------------------- /assets/better-styles/cards-better-styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/better-styles/cards-better-styles.png -------------------------------------------------------------------------------- /assets/better-styles/cast-better-styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tetrax-10/imdb-clean-as-fuck/HEAD/assets/better-styles/cast-better-styles.png -------------------------------------------------------------------------------- /theme/main/components/components.scss: -------------------------------------------------------------------------------- 1 | @use "cards/cards"; 2 | @use "footer/footer"; 3 | @use "menu/menu"; 4 | @use "popups/title-info"; 5 | @use "titlebar/titlebar"; 6 | -------------------------------------------------------------------------------- /theme/main/pages/list/most-popular-movies.scss: -------------------------------------------------------------------------------- 1 | // grid layout popularity info above card poster 2 | .ipc-poster-card .gli-meter-title-header { 3 | display: none; 4 | } 5 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 4, 4 | "useTabs": false, 5 | "semi": false, 6 | "singleQuote": false, 7 | "printWidth": 200 8 | } 9 | -------------------------------------------------------------------------------- /theme/main/pages/persons/persons.scss: -------------------------------------------------------------------------------- 1 | // hide starmeter ad 2 | .starmeter-logo { 3 | display: none; 4 | } 5 | 6 | // More at IMDbPro, In-development projects at IMDbPro 7 | ul.ipc-metadata-list > li:has(> a[href*="pro"]) { 8 | display: none; 9 | } 10 | -------------------------------------------------------------------------------- /theme/main/pages/list/top250.scss: -------------------------------------------------------------------------------- 1 | // right side "More to explore" heading 2 | section[data-testid="chart-layout-sidebar"] > div[class], 3 | // right side "More to explore" contents 4 | section[data-testid="chart-layout-sidebar"] > div[data-testid] { 5 | display: none; 6 | } 7 | -------------------------------------------------------------------------------- /theme/main/pages/pages.scss: -------------------------------------------------------------------------------- 1 | @use "episodes/episodes"; 2 | @use "home/home"; 3 | @use "list/list"; 4 | @use "movies/movies"; 5 | @use "persons/persons"; 6 | @use "search/search"; 7 | @use "tv-shows/tv-shows"; 8 | @use "watchlist/watchlist"; 9 | @use "what-to-watch/what-to-watch"; 10 | -------------------------------------------------------------------------------- /theme/main/pages/tv-shows/tv-shows.scss: -------------------------------------------------------------------------------- 1 | .ipc-page-content-container--full { 2 | .ipc-page-content-container.ipc-page-content-container--center { 3 | // Episode ratings spotlight 4 | section:has(> section[data-testid="embeddable-section"]) { 5 | display: none; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /theme/main/pages/watchlist/watchlist.scss: -------------------------------------------------------------------------------- 1 | // remove watchlist, ratings page description 2 | div[data-testid="list-author-and-metrics"] > :not(:first-child) { 3 | display: none; 4 | } 5 | div[data-testid="list-author-and-metrics"]:has(+ .list-description.editable-trigger) > :first-child { 6 | margin-bottom: 1.5rem; 7 | } 8 | -------------------------------------------------------------------------------- /theme/main/pages/what-to-watch/what-to-watch.scss: -------------------------------------------------------------------------------- 1 | // Browse these IMDb collections 2 | // (https://www.imdb.com/what-to-watch/) 3 | div[role="tabpanel"] > div > div:has-text(/Browse these IMDb collections/i) { 4 | display: none; 5 | } 6 | // (https://www.imdb.com/what-to-watch/from-your-watchlist/) (don't join the above selector with this, idk it doesnt work for some reason) 7 | section:has(> div > p:has-text(/Browse these IMDb collections/i)) { 8 | display: none; 9 | } 10 | -------------------------------------------------------------------------------- /theme/main/pages/episodes/episodes.scss: -------------------------------------------------------------------------------- 1 | .ipc-page-content-container--full { 2 | .ipc-page-content-container.ipc-page-content-container--center { 3 | section[data-testid="Episodes"] { 4 | // top rated episodes header 5 | & > div[data-testid="episodes-header"], 6 | // top rated episodes just before browse episodes 7 | & > div[data-testid="episodes-header"] + div > div:not([data-testid="episodes-browse-episodes"]) { 8 | display: none; 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "imdb-clean-as-fuck", 3 | "description": "Removes bloat from IMDB website and styles it to make it look good with orginality", 4 | "author": "Tetrax-10", 5 | "license": "MIT", 6 | "main": "scripts/build.js", 7 | "type": "module", 8 | "scripts": { 9 | "build-filter-list": "node scripts/build.js", 10 | "build-filter-list-personal": "node scripts/build.js --personal" 11 | }, 12 | "dependencies": { 13 | "@adobe/css-tools": "^4.3.2", 14 | "sass": "^1.69.5" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /theme/main/components/popups/title-info.scss: -------------------------------------------------------------------------------- 1 | .ipc-promptable-base__panel { 2 | .ipc-promptable-base__content { 3 | & > div { 4 | padding-bottom: 0; 5 | 6 | // credits/episode no/year 7 | & > div:is(:has(> .ipc-expandableSection), :has(> .character-summary-episodic-credit)) { 8 | display: none; 9 | } 10 | // hide streaming services 11 | & > div:has(> div:has-text(/STREAMING/i)) { 12 | display: none; 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /theme/main/components/titlebar/titlebar.scss: -------------------------------------------------------------------------------- 1 | nav#imdbHeader { 2 | // imdb pro button 3 | .navbar__imdbpro, 4 | // language selector dropdown 5 | div:has( > label[aria-label="Toggle language selector"]) { 6 | display: none; 7 | } 8 | // use app button 9 | #ublock[domain="m.imdb.com"]a[aria-label="Use app"] { 10 | display: none; 11 | } 12 | 13 | // hide imdb events from search's top result 14 | li.react-autosuggest__suggestion--first:has(> a:not([href^="/name"]):not([href^="/title"])) { 15 | display: none; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /theme/main/pages/search/search.scss: -------------------------------------------------------------------------------- 1 | // right side bar more result, advanced search 2 | .ipc-page-content-container--full { 3 | & > .ipc-page-content-container.ipc-page-content-container--center { 4 | & > section > div > div { 5 | // above selectors are just to increase search precision (better performance) 6 | & > div:has(> section[data-testid="more-results-section"], > section[data-testid="advanced-search-section"]) { 7 | display: none; 8 | } 9 | } 10 | } 11 | } 12 | 13 | // exact match button 14 | .results-section-exact-match-btn { 15 | display: none; 16 | } 17 | -------------------------------------------------------------------------------- /theme/main/components/menu/menu.scss: -------------------------------------------------------------------------------- 1 | .imdb-header__nav-drawer { 2 | // watch/awards and events/celebs/community menus 3 | .navlinkcat:has(input[data-category-id="video"], #nav-link-categories-awards, #nav-link-categories-celebs, #nav-link-categories-comm) { 4 | display: none; 5 | } 6 | // useless menu items in movies, tv 7 | .navlinkcat__listContainerInner > ul > a:has-text(/Movie Spotlight|Movie News|Showtimes & Tickets|on TV & Streaming|TV News/i) { 8 | display: none; 9 | } 10 | 11 | // imdb pro button 12 | #ublock[domain="m.imdb.com"]a[href*="https://pro.imdb"], 13 | // select language 14 | #ublock[domain="m.imdb.com"]label[aria-label="language-select"] { 15 | display: none; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /theme/main/pages/list/list.scss: -------------------------------------------------------------------------------- 1 | @use "most-popular-movies"; 2 | @use "top250"; 3 | 4 | ul.compact-list-view { 5 | // compact view list item 6 | .ipc-metadata-list-summary-item { 7 | padding-top: 20px; 8 | padding-bottom: 20px; 9 | } 10 | 11 | // compact view list poster element 12 | li.ipc-metadata-list-summary-item > :first-child { 13 | margin-right: 1rem; 14 | width: 7rem; 15 | } 16 | } 17 | 18 | // sidebar in list page => create new list/tell your friends/feedback/your list 19 | #content-2-wide:not([class]) #sidebar > div:not(.list-activity-widget) { 20 | display: none; 21 | } 22 | 23 | // recently viewed 24 | #rvi-div > .recently-viewed { 25 | display: none; 26 | } 27 | 28 | .lister-item-content { 29 | // director, stars in list items 30 | & > p:has(a[href*="/name/"]), 31 | // watch option in list items 32 | & > div.wtw-option-standalone { 33 | display: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /theme/main/pages/home/home.scss: -------------------------------------------------------------------------------- 1 | .ipc-page-content-container--full { 2 | & > .ipc-page-content-container.ipc-page-content-container--center { 3 | // Most popular celebrities 4 | section[cel_widget_id="DynamicFeature_PopularCelebrities"], 5 | // what to watch 6 | div[data-testid="whatToWatch_title"], 7 | // big horizontally scrolable banners 8 | & > div.ipc-page-grid:not(.page-grid), 9 | // featured today/episode ratings feature/more to watch/exclusive videos|imdb originals/editors picks/born today/top news 10 | & > div.ipc-page-grid:has(div#featured-today, iframe, section.more-to-watch, div#imdb-originals, #editors-picks, #born-today, #top-news), 11 | // in theaters/top box office/comming soon to theaters 12 | & > div:has(#in-theaters, #top-box-office, #coming-soon-movie) { 13 | display: none; 14 | } 15 | } 16 | } 17 | 18 | // remove extra left and right space in all pages 19 | #ublock[personal].ipc-page-content-container--center { 20 | max-width: 98%; 21 | } 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 - present Raghavan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Publish Filter List 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/** 7 | - scripts/** 8 | - theme/** 9 | pull_request: 10 | paths: 11 | - .github/** 12 | - scripts/** 13 | - theme/** 14 | 15 | jobs: 16 | build_and_publish: 17 | name: Setup Linux environment 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - name: Checkout repository 22 | uses: actions/checkout@v3 23 | 24 | - name: Install Node.js 25 | uses: actions/setup-node@v3 26 | with: 27 | node-version: 20.x 28 | 29 | - name: Install repository dependencies 30 | run: npm ci 31 | 32 | - name: Build filter list 33 | run: npm run build-filter-list 34 | 35 | - name: Build filter list personal 36 | run: npm run build-filter-list-personal 37 | 38 | - name: Publish filter list 39 | uses: s0/git-publish-subdir-action@develop 40 | env: 41 | REPO: self 42 | BRANCH: dist 43 | FOLDER: "dist" 44 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 45 | -------------------------------------------------------------------------------- /theme/main/components/cards/cards.scss: -------------------------------------------------------------------------------- 1 | // cards with actions 2 | #ublock[domain="www.imdb.com"].ipc-poster-card:has(> .ipc-poster-card__actions) { 3 | padding-bottom: 0; 4 | } 5 | 6 | // card's actions (watchlist, info, trailers) 7 | .ipc-poster-card__actions { 8 | display: none; 9 | } 10 | 11 | // card's title container 12 | .ipc-poster-card__title { 13 | white-space: nowrap; 14 | text-align: center; 15 | display: inline-block; // necessary for text-overflow 16 | 17 | // actual text 18 | & > span { 19 | vertical-align: -webkit-baseline-middle; 20 | } 21 | 22 | // remove decoration 23 | &.ipc-poster-card__title--clickable:hover { 24 | text-decoration: none; 25 | } 26 | } 27 | 28 | // card's rating 29 | .ipc-rating-star-group { 30 | align-self: center; 31 | } 32 | .ipc-rating-star-group .ipc-rating-star--currentUser, 33 | .ipc-rating-star-group .ipc-rating-star--imdb { 34 | margin: 0 0.5rem; 35 | } 36 | 37 | // list page cards title 38 | .ipc-poster-card__title:has(+ .gtc-title-metadata) { 39 | padding-top: 1rem; 40 | } 41 | // list page cards metadata 42 | .gtc-title-metadata { 43 | display: none; 44 | } 45 | // fix list page cards rated stars (made it center) 46 | .gli-rating-group:has(~ .gtc-title-metadata) .ipc-rate-button.ipc-rate-button--rated .ipc-rating-star { 47 | padding: 0px 0.5rem; 48 | } 49 | -------------------------------------------------------------------------------- /scripts/build.js: -------------------------------------------------------------------------------- 1 | import * as css from "@adobe/css-tools" 2 | import * as sass from "sass" 3 | import fs from "fs" 4 | 5 | const themeCss = sass.compile("./theme/theme.scss", { style: "compressed" }).css 6 | 7 | const parsedThemeCss = css.parse(themeCss) 8 | 9 | let imdbCleanAsFuck = "" 10 | let imdbCleanAsFuckWithBetterStyles = "" 11 | let imdbCleanAsFuckWithBetterStylesPersonal = "" 12 | 13 | for (const rule of parsedThemeCss.stylesheet.rules) { 14 | let allSelectors = "" 15 | let isMobile = false 16 | let isDesktop = false 17 | let isPersonal = false 18 | let isFirstSelector = true 19 | for (const selector of rule.selectors) { 20 | if (selector.includes('#ublock[domain="m.imdb.com"]')) { 21 | allSelectors += `${isFirstSelector ? "" : ","}${selector.replaceAll('#ublock[domain="m.imdb.com"]', "")}` 22 | isMobile = true 23 | } else if (selector.includes('#ublock[domain="www.imdb.com"]')) { 24 | allSelectors += `${isFirstSelector ? "" : ","}${selector.replaceAll('#ublock[domain="www.imdb.com"]', "")}` 25 | isDesktop = true 26 | } else if (selector.includes("#ublock[personal]")) { 27 | allSelectors += `${isFirstSelector ? "" : ","}${selector.replaceAll("#ublock[personal]", "")}` 28 | isPersonal = true 29 | } else { 30 | allSelectors += `${isFirstSelector ? "" : ","}${selector}` 31 | } 32 | 33 | isFirstSelector = false 34 | } 35 | 36 | let allDeclarations = "" 37 | let isHide = false 38 | let isBetterStyles = false 39 | for (const declaration of rule.declarations) { 40 | if (`${declaration.property}:${declaration.value}`.includes("display:none")) { 41 | isHide = true 42 | if (declaration.value.includes("!important")) { 43 | isBetterStyles = true 44 | } 45 | break 46 | } else { 47 | if (!declaration.value.includes("!important")) { 48 | isBetterStyles = true 49 | } 50 | allDeclarations += `${declaration.property}:${declaration.value}${declaration.value.includes("!important") ? "" : " !important"};` 51 | } 52 | } 53 | 54 | const filter = `${isMobile ? "m." : isDesktop ? "www." : ""}imdb.com#${isHide ? "" : "$"}#${allSelectors}${isHide ? "" : `{${allDeclarations}}`}\n` 55 | 56 | if (!isPersonal) { 57 | if (!isBetterStyles) imdbCleanAsFuck += filter 58 | imdbCleanAsFuckWithBetterStyles += filter 59 | } 60 | imdbCleanAsFuckWithBetterStylesPersonal += filter 61 | } 62 | 63 | if (!fs.existsSync("./dist")) { 64 | fs.mkdirSync("./dist") 65 | } 66 | 67 | fs.writeFileSync("./dist/imdb-clean-as-fuck.txt", imdbCleanAsFuck) 68 | fs.writeFileSync("./dist/imdb-clean-as-fuck-with-better-styles.txt", imdbCleanAsFuckWithBetterStyles) 69 | if (process.argv.includes("--personal")) fs.writeFileSync("./dist/imdb-clean-as-fuck-with-better-styles-personal.txt", imdbCleanAsFuckWithBetterStylesPersonal) 70 | -------------------------------------------------------------------------------- /theme/main/pages/movies/movies.scss: -------------------------------------------------------------------------------- 1 | // add to watchlist button 2 | .ipc-btn--theme { 3 | &-base, 4 | &-baseAlt { 5 | &:not(:disabled) { 6 | &.ipc-btn--core-accent1 { 7 | &, 8 | .ipc-split-button__btn, 9 | .ipc-split-button__iconBtn { 10 | background: #f5c518; 11 | color: #000000; 12 | border-radius: 10px; 13 | } 14 | } 15 | } 16 | } 17 | } 18 | 19 | .ipc-page-content-container--full { 20 | .ipc-page-content-container.ipc-page-content-container--center { 21 | // cast people images 22 | .title-cast-item__avatar { 23 | min-width: calc(36% - 1.3125rem); 24 | } 25 | section[data-testid="title-cast"] { 26 | .ipc-media--avatar-circle { 27 | border-radius: 0.75rem; 28 | } 29 | .ipc-avatar { 30 | &, 31 | .ipc-lockup-overlay, 32 | .ipc-lockup-overlay__screen { 33 | @extend .ipc-media--avatar-circle; 34 | } 35 | } 36 | } 37 | 38 | // photos 39 | section[data-testid="Photos"] { 40 | .ipc-media--base, 41 | .ipc-image { 42 | border-radius: 0.75rem; 43 | } 44 | } 45 | 46 | // unwanted sections 47 | // videos 48 | section[data-testid="videos-section"], 49 | // did you know 50 | section[data-testid="DidYouKnow"], 51 | // storyline useless repeated infos 52 | section[data-testid="Storyline"] ul.ipc-metadata-list, 53 | // news 54 | section[data-testid="News"], 55 | // box office 56 | section[data-testid="BoxOffice"], 57 | // contribution 58 | section[data-testid="contribution"], 59 | // faq 60 | section[cel_widget_id="StaticFeature_FAQ"], 61 | // top picks 62 | section:has(> div > div[data-testid="top-picks--title"]), 63 | // awards won (just under movie info) 64 | section[cel_widget_id="StaticFeature_Awards"], 65 | // gallery about that movie/tv 66 | section:has( > section[data-testid="main-column-editorial-single"]) { 67 | display: none; 68 | } 69 | 70 | // right side more to explore 71 | .right-rail-more-to-explore { 72 | display: none; 73 | } 74 | 75 | // repeated movie info 76 | section[data-testid="title-cast"] > ul { 77 | display: none; 78 | } 79 | 80 | // See production info at IMDbPro 81 | li:has(#ProUpsellLink) { 82 | display: none; 83 | } 84 | 85 | // watch option above add to watchlist (streaming platform) 86 | div:not([class]) > div:has(div[data-testid="tm-box-woc-text"]) { 87 | display: none; 88 | } 89 | 90 | // videos, photos button just below trailer 91 | #ublock[domain="m.imdb.com"]div:has(> a[data-testid="hero__video-link"], > a[data-testid="hero__photo-link"]) { 92 | display: none; 93 | } 94 | 95 | // review scores, metascore, critic reviews under add to watchlist 96 | ul[data-testid="reviewContent-all-reviews"] { 97 | display: none; 98 | } 99 | 100 | // more like this section more info button 101 | section[data-testid="MoreLikeThis"] div:has(> a[aria-label="More information"]) { 102 | display: none; 103 | } 104 | 105 | // see more company credits at IMDB pro located in details section 106 | section[data-testid="Details"] .ipc-metadata-list li[data-testid="title-details-companycredits"] { 107 | display: none; 108 | } 109 | 110 | // just below titlebar => cast & crew, user reviews, trivia, faq, imdb pro, all topics, share etc... 111 | .ipc-page-section { 112 | div:has(> div[data-testid="hero-subnav-bar-left-block"]), 113 | div:has(> div[data-testid="hero-subnav-bar-right-block"]:not(:has(> div[data-testid="hero-list-subnav-export-button"]))) { 114 | visibility: hidden !important; 115 | height: 20px !important; 116 | } 117 | } 118 | 119 | // ratings, polularity titles just below the title bar (heading) 120 | div:has(> div[data-testid="hero-rating-bar__user-rating"]) > div[data-testid*="hero-rating-bar__"] > div { 121 | display: none; 122 | } 123 | 124 | // mobile rating n/10 remove "/10" 125 | #ublock[domain="m.imdb.com"]div[data-testid="hero-rating-bar__aggregate-rating__score"] > span:has-text("/") { 126 | display: none; 127 | } 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IMDB Clean as Fuck 2 | 3 | Hate the _promotions, interviews, celebrity news, awards, exclusives_ and etc... etc... on IMDB? Then this Ublock orgin filter is for you. 4 | 5 | This is basically IMDB with just Movies and TV shows and nothing else. 6 | 7 |
8 | 9 | 👉 **[CLICK ME](https://subscribe.adblockplus.org/?location=https://tetrax-10.github.io/imdb-clean-as-fuck/imdb-clean-as-fuck-with-better-styles.txt&title=IMDB%20Clean%20as%20Fuck)** to Install the filter list with better styles (Recommended) 10 | 11 | (or) 12 | 13 | 👉 **[CLICK ME](https://subscribe.adblockplus.org/?location=https://tetrax-10.github.io/imdb-clean-as-fuck/imdb-clean-as-fuck.txt&title=IMDB%20Clean%20as%20Fuck)** to Install the filter list alone (Removes bloat but no extra styling) 14 | 15 | _Tip_: Try [IMDb Dark Mode](https://github.com/Tetrax-10/imdb-dark-mode) 16 | 17 |
18 | 19 | ### Difference 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |
Stock IMDBIMDB with filter
67 | 68 | ### Better Styles 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
Stock IMDBBetter styles
84 | and more... 85 | 86 |
87 | 88 | ### FAQ 89 | 90 | 1. #### How to unhide something? 91 | 92 | - Go to this [page](https://tetrax-10.github.io/imdb-clean-as-fuck/imdb-clean-as-fuck.txt) and search for the element you want to unhide, eg: `metascore` 93 | - Copy the filter that just below the line you found, eg: `imdb.com##ul[data-testid="reviewContent-all-reviews"]` 94 | - Paste that in your `Ublock Orgin => Dashboard => My filters` 95 | - Now replace the doube `##` which is blue in color to `#@#`. Now they should turn green. Some filter might have `###` still you only need to replace the first `##` don't worry about the third `#` 96 | - Click `Apply changes` on top, thats it you should see the element on the website after a reload. 97 | 98 | #### Frequently whitelisted elements: 99 | 100 |
101 | show all 102 | 103 | - ##### Watch on: 104 | 105 | ```css 106 | imdb.com#@#.gbsbQW 107 | m.imdb.com#@#.iCWOBC 108 | ``` 109 | 110 | - ##### Metascore: 111 | 112 | ```css 113 | imdb.com#@#ul[data-testid="reviewContent-all-reviews"] 114 | ``` 115 | 116 | - ##### Storyline: 117 | 118 | ```css 119 | imdb.com#@#section[data-testid="Storyline"] 120 | ``` 121 | 122 | - ##### User reviews: 123 | 124 | ```css 125 | imdb.com#@#section[data-testid="UserReviews"] 126 | ``` 127 | 128 | - ##### Did you know: 129 | 130 | ```css 131 | imdb.com#@#section[data-testid="DidYouKnow"] 132 | ``` 133 | 134 | - ##### video section: 135 | 136 | ```css 137 | imdb.com#@#section[data-testid="videos-section"] 138 | ``` 139 | 140 |
141 | 142 | 2. #### Does this filter block ads? 143 | 144 | No, Ublock Orgin will take care of that. This filter just hides elements that are not important or releated to Movies and TV shows. 145 | 146 | 3. #### Does this work on mobile version of IMDB? 147 | 148 | Yes, just install [Firefox](https://play.google.com/store/apps/details?id=org.mozilla.firefox) or [Kiwi](https://play.google.com/store/apps/details?id=com.kiwibrowser.browser) browser on android and install Ublock Orgin and this filter 149 | 150 |
151 | 152 | ### Contribution 153 | 154 | Seeing something thats not related to Movies or TV shows? Please create an [issue](https://github.com/Tetrax-10/imdb-clean-as-fuck/issues/new/choose) or make a [pull request](https://github.com/Tetrax-10/imdb-clean-as-fuck/pulls) with proper comments and screenshots. 155 | 156 |
157 | --------------------------------------------------------------------------------