├── .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 | | Stock IMDB |
24 | IMDB with filter |
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 |
67 |
68 | ### Better Styles
69 |
70 |
71 |
72 | | Stock IMDB |
73 | Better styles |
74 |
75 |
76 |  |
77 |  |
78 |
79 |
80 |  |
81 |  |
82 |
83 |
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 |
--------------------------------------------------------------------------------