From 18bdab19620affce29e53d4ceb659e77b1c7933b Mon Sep 17 00:00:00 2001 From: symant233 Date: Sun, 5 May 2019 19:44:44 +0800 Subject: [PATCH] add main viewer --- nhentai/cmdline.py | 8 +- nhentai/utils.py | 6 + nhentai/viewer/main.css | 1893 ++++++++++++++++++++++++++++++++++++++ nhentai/viewer/main.html | 37 + 4 files changed, 1943 insertions(+), 1 deletion(-) create mode 100644 nhentai/viewer/main.css create mode 100644 nhentai/viewer/main.html diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index d8ab7bf..7e199b4 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -9,7 +9,7 @@ except ImportError: pass import nhentai.constant as constant -from nhentai.utils import urlparse, generate_html +from nhentai.utils import urlparse, generate_html, generate_main_html from nhentai.logger import logger try: @@ -60,6 +60,8 @@ def cmd_parser(): help='uses a proxy, for example: --proxy "http://127.0.0.1:1080" or its alias "default"') parser.add_option('--html', dest='html_viewer', action='store_true', help='generate a html viewer at current directory') + parser.add_option('--gen-main', dest='main_viewer', action='store_true', + help='generate a main viewer contain all the doujin in the folder') parser.add_option('--login', '-l', type='str', dest='login', action='store', help='username:password pair of nhentai account') @@ -86,6 +88,10 @@ def cmd_parser(): generate_html() exit(0) + if args.main_viewer: + generate_main_html() + exit(0) + if args.login: try: _, _ = args.login.split(':', 1) diff --git a/nhentai/utils.py b/nhentai/utils.py index f884d2f..4239e91 100644 --- a/nhentai/utils.py +++ b/nhentai/utils.py @@ -81,6 +81,12 @@ def generate_html(output_dir='.', doujinshi_obj=None): except Exception as e: logger.warning('Writen HTML Viewer failed ({})'.format(str(e))) +def generate_main_html(output_dir='.'): + """Generete a main html to show all the contain doujinshi. + With a link to thier `index.html`. + Default output folder will be the CLI path. + """ + pass def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False): if doujinshi_obj is not None: diff --git a/nhentai/viewer/main.css b/nhentai/viewer/main.css new file mode 100644 index 0000000..3ec6c77 --- /dev/null +++ b/nhentai/viewer/main.css @@ -0,0 +1,1893 @@ +/* +Original from https://static.nhentai.net/css/main_style.9bb9b703e601.css +This `.css` file need to delete some unused elements for our Viewer. +Please fork the project to make contributions. +*/ +html { + font-family: sans-serif; + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article,aside,footer,header,nav,section { + display: block +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +figcaption,figure,main { + display: block +} + +figure { + margin: 1em 40px +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible +} + +pre { + font-family: monospace,monospace; + font-size: 1em +} + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects +} + +a:active,a:hover { + outline-width: 0 +} + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted +} + +b,strong { + font-weight: inherit +} + +b,strong { + font-weight: bolder +} + +code,kbd,samp { + font-family: monospace,monospace; + font-size: 1em +} + +dfn { + font-style: italic +} + +mark { + background-color: #ff0; + color: #000 +} + +small { + font-size: 80% +} + +sub,sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +img { + border-style: none +} + +svg:not(:root) { + overflow: hidden +} + + +@media (min-width: 1201px) { + nav form { + margin-right:10px; + width: 25% + } + + nav #hamburger,nav .menu .dropdown { + display: none + } +} + +@media (min-width: 601px) and (max-width:1200px) { + nav form { + width:35% + } + + nav .menu .desktop { + display: none + } + + nav .menu .dropdown-menu { + display: none + } + + nav #hamburger { + display: none + } + + nav .dropdown { + position: relative + } + + nav .dropdown .dropdown-menu.open { + display: inline-block; + position: absolute; + left: 0; + top: 100%; + border-radius: 3px; + padding-left: 0; + text-align: left; + background-color: #2e3c4a; + z-index: 3; + box-shadow: 0 0 30px rgba(0,0,0,.5) + } + + nav .dropdown .dropdown-menu.open:before { + position: absolute; + content: ''; + pointer-events: none; + bottom: 100%; + left: 15px; + border-color: transparent transparent #2e3c4a transparent; + border-style: solid; + border-width: 10px 10px 10px 10px; + height: 0; + width: 0 + } + + nav .dropdown .dropdown-menu.open li { + width: 100% + } + + nav .dropdown .dropdown-menu.open li a { + line-height: 2; + height: auto; + width: 100% + } + + nav .dropdown .dropdown-menu.open li:first-of-type a { + border-top-right-radius: 3px; + border-top-left-radius: 3px + } + + nav .dropdown .dropdown-menu.open li:last-of-type a { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px + } +} + +@media (max-width: 600px) { + nav { + padding-right:50px + } + + nav form { + width: 100% + } + + nav .collapse { + display: block; + width: 100%; + overflow: hidden; + max-height: 0; + transition: max-height .5s + } + + nav .collapse.open { + max-height: 370px + } + + nav .collapse .menu.left,nav .collapse .menu.right { + float: none + } + + nav .collapse .menu .dropdown { + display: none + } + + nav .collapse .menu li { + display: block + } + + nav .collapse .menu li a { + width: 100%; + height: 35px; + line-height: 35px + } +} + +#settings-container { + text-align: left +} + +#settings-container input[type=email],#settings-container input[type=password],#settings-container input[type=text] { + width: 100%; + height: 30px; + padding-left: 10px; + border-radius: 3px +} + +#settings-container h2 { + text-align: center +} + +#settings-container form { + max-width: 800px; + margin-right: auto; + margin-left: auto +} + +#user-container { + overflow: auto +} + +@media (min-width: 600px) { + .user-info { + text-align:left; + float: left + } + + .bigavatar { + float: left; + margin: 2em + } +} + +.form-group { + margin: 20px +} + +label { + display: block; + font-weight: 700; + text-align: justify; + white-space: nowrap +} + +html { + box-sizing: border-box +} + +*,:after,:before { + box-sizing: inherit +} + +h1,h2,h3,h4,h5,h6 { + font-weight: 700 +} + +body,html { + font-family: 'Noto Sans',sans-serif; + font-size: 14px; + line-height: 1.42857143; + height: 100%; + margin: 0; + text-align: center; + color: #34495e; + background-color: #fff; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +button,input,textarea { + font-family: 'Noto Sans',sans-serif +} + +a { + text-decoration: none; + color: #34495e +} + +a:hover { + text-decoration: none; + color: #ed2553 +} + +a.count { + color: #999 +} + +a.bold { + font-weight: 700 +} + +code { + color: #ed2553; + border: 1px solid #fbd3dd; + background-color: #fef0f3 +} + +textarea { + resize: none +} + +blockquote { + border: 0 +} + +form.inline { + display: inline +} + +.btn { + display: inline-block; + vertical-align: middle; + font-weight: 700; + cursor: pointer; + padding: 0; + padding-right: 12px; + padding-left: 12px; + color: #fff; + border: 0; + border-radius: 3px; + outline: 0; + font-size: 100%; + height: 40px; + line-height: 40px; + margin: 3px; + -webkit-font-smoothing: antialiased +} + +.btn:hover { + color: #fff; + background: #f15478 +} + +.btn.btn-unstyled { + font-weight: 400; + line-height: 1; + height: auto; + color: inherit; + padding: 0; + margin: 0; + background: 0 0; + cursor: pointer; + border: none +} + +.btn.btn-thin { + font-weight: 400; + height: auto; + line-height: 1; + margin-top: 5px; + margin-bottom: 10px; + padding-top: 5px; + padding-right: 6px; + padding-bottom: 5px; + padding-left: 6px +} + +.btn.btn-primary { + background-color: #ed2553 +} + +.btn.btn-primary:active,.btn.btn-primary:focus,.btn.btn-primary:hover { + color: #fff; + background: #f15478 +} + +.btn.btn-primary.disabled,.btn.btn-primary:disabled { + cursor: default; + background-color: #be546c +} + +.btn.btn-secondary { + background-color: #475d73 +} + +.btn.btn-secondary:active,.btn.btn-secondary:focus,.btn.btn-secondary:hover { + background: #516a83 +} + +.btn.btn-secondary.disabled,.btn.btn-secondary:disabled { + cursor: default; + background-color: #555d65 +} + +.btn.btn-square { + width: 40px; + height: 40px; + margin: 5px; + vertical-align: middle +} + +.edit { + font-size: 15px; + padding: 5px; + padding-top: 2px; + padding-bottom: 2px; + vertical-align: middle; + color: #fff; + border-radius: 3px; + background: #2a3744 +} + +.edit:hover { + color: #fff; + background: #3d5064 +} + +.container { + display: block; + clear: both; + margin-left: auto; + margin-right: auto; + margin-bottom: 10px; + margin-top: 10px; + padding: 10px; + border-radius: 9px; + background-color: #ecf0f1; + width: 100%; + max-width: 1200px +} + +@media screen and (orientation: landscape) { + .container { + padding-left:calc(5px + constant(safe-area-inset-left)); + padding-right: calc(5px + constant(safe-area-inset-right)) + } +} + +.container.left { + text-align: left +} + +.container.right { + text-align: right +} + +@media screen and (max-width: 1200px) { + .container { + border-radius:0 + } +} + +.container.advertisement.advertisement { + overflow: hidden; + margin-right: auto; + margin-left: auto; + text-align: center; + background-color: inherit; + min-height: 90px +} + +.container.advertisement.advertisement iframe { + display: block; + margin-right: auto; + margin-left: auto +} + +.container:last-of-type { + margin-bottom: 0 +} + +.invisible { + z-index: -1; + visibility: hidden +} + +.pagination { + font-size: 1.3em; + margin-bottom: 2em; + margin-top: 2em +} + +.pagination .first,.pagination .last,.pagination .next,.pagination .page,.pagination .previous { + display: inline-block; + min-width: 35px; + padding: 5px +} + +.pagination .first.current,.pagination .last.current,.pagination .next.current,.pagination .page.current,.pagination .previous.current { + font-weight: 700; + border-radius: 100%; + background-color: #f2f5f5 +} + +.pagination .first:hover,.pagination .last:hover,.pagination .next:hover,.pagination .page:hover,.pagination .previous:hover { + border-radius: 100%; + background-color: #f8f9fa +} + +.alphabetical-pagination { + margin-bottom: 0; + padding-left: 0; + list-style: none +} + +.alphabetical-pagination li { + display: inline-block +} + +.alphabetical-pagination li a,.alphabetical-pagination li span { + font-size: 1.15em; + display: inline-block; + min-width: 26px; + padding: 2px; + text-align: center +} + +.alphabetical-pagination li a:hover,.alphabetical-pagination li span:hover { + border-radius: 100%; + background-color: #f5f7f7 +} + +.alphabetical-pagination li a.current,.alphabetical-pagination li span.current { + border-radius: 100%; + font-weight: 700 +} + +.alphabetical-pagination li a.disabled,.alphabetical-pagination li span.disabled { + color: #999 +} + +.tag { + display: inline-block; + border-radius: 3px; + color: #fff; + margin: 2px; + padding: 2px 6px 3px; + background: #364657 +} + +.tag:hover { + color: #fff; + background: #556f89 +} + +.tag .count { + font-weight: 400; + color: #a5b6c8 +} + +#footer-container { + margin-top: 15px; + margin-bottom: 6px; + background-color: inherit +} + +#footer-container .footer-item a { + margin: 10px; + color: #5e7980 +} + +.thumb-container { + text-align: center +} + +.thumb-container img { + margin-top: 2px; + margin-right: 2px; + margin-left: 2px +} + +.blacklisted-tag { + text-decoration: line-through +} + +.blacklisted.gallery { + opacity: .1; + -webkit-filter: blur(5px); + filter: blur(5px) +} + +.blacklisted.gallery:hover { + opacity: .2; + -webkit-filter: blur(0); + filter: blur(0) +} + +.blacklisted.tag { + opacity: .5; + text-decoration: line-through +} + +.gallery,.gallery-favorite,.thumb-container { + display: inline-block; + vertical-align: top +} + +.gallery img,.gallery-favorite img,.thumb-container img { + display: block; + max-width: 100%; + height: auto +} + +@media screen and (min-width: 980px) { + .gallery,.gallery-favorite,.thumb-container { + width:19%; + margin: 3px; + margin-bottom: 8px + } +} + +@media screen and (max-width: 979px) { + .gallery,.gallery-favorite,.thumb-container { + width:24%; + margin: 2px + } +} + +@media screen and (max-width: 772px) { + .gallery,.gallery-favorite,.thumb-container { + width:32%; + margin: 1.5px + } +} + +@media screen and (max-width: 500px) { + .gallery,.gallery-favorite,.thumb-container { + width:49%; + margin: .5px + } +} + +.gallery a,.gallery-favorite a { + display: block +} + +.gallery a img,.gallery-favorite a img { + position: absolute +} + +.caption { + line-height: 15px; + left: 0; + right: 0; + top: 100%; + position: absolute; + z-index: 10; + overflow: hidden; + width: 100%; + max-height: 34px; + padding: 3px; + background-color: #fff; + font-weight: 700; + display: block; + text-align: center; + text-decoration: none; + color: #34495e +} + +.gallery { + position: relative; + margin-bottom: 3em +} + +.gallery:hover .caption { + max-height: 100%; + box-shadow: 0 10px 20px rgba(100,100,100,.5) +} + +.gallery-favorite .btn { + margin-top: 20px +} + +.gallery-favorite .gallery { + width: 100% +} + +.gallery[data-tags*="12227"] .caption:before,.gallery[data-tags*="29963"] .caption:before,.gallery[data-tags*="6346"] .caption:before { + content: ""; + display: inline-block; + vertical-align: middle; + z-index: 2; + background-size: contain; + width: 18px; + height: 12px +} + +.gallery[data-tags*="6346"] .caption:before { + background-image: url(data:image/gif;base64,R0lGODlhSAAwAOZhAO1UZPn6/PX+//X8//z9/vX4+/X//////+1TY+1PX/X7/vX7/fb///X9/+1SYvf4++1QYOxMXPn7/P7+//Xw9PXx9fGjre5pd/X8/vb4+/GnsPPN1O1OX/CQm+95hvTd4vXy9vGXovTb4PCVoO1TZPPS1+1OXu1QYfPT2fTm6/Ggqu1dbfX5/O5icPCSnfCTne1RYvTq7u5hcfGkrvTv8+5jce1UZfTr7/To7fKqsvPJz+1WZvPO0/CTnvXt8fPP1e93g/K0vPLEy/LEzO1PYO1YaO+Aje5od+1ZaPLDy+5gb/LFzO5ice+Klu1XZ++Cju1YZ+5hcPXs8PGirOxKW++JlexLXO+CjfK2v/K2vfXs8e+BjPG0u+5hb+1VZfb4+vX3+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGEALAAAAABIADAAAAf/gGFhBwQBD1+IiYqLjI2Oj5CLDwEEB4JhEwFfYJydnp+goaKjpKNfARODEqWsra6vnRKEm7C1trBfhbe7vKQBGb3BwmCHw8a3iMfKr8nLzqTNz9Kf0dPW1dbS2NnO28MFCw0CBgINCwXdtMcFAz5LFi9NLxZCWgMsyt68GCBYTxdIIFhJAOWCkSAVBhzTdwsDjhBMIiRwAMALAAcJInQZkULhMIa1GtzoAYCIl5MoUUIg0SGGgI/qeimokGMHgpQ4T97UQEGBMJCvBJSoASOnUQcteAhA1wtoqwUUZnCwYdSoCRU0fDaNucvABw83q+ZEAESEgWBOWRlAIaOiWJwA0Fb8YICW6y0GGyy+zXlCB92twvDq3Zuy719eaUutbUsYZdy5dYV5BdtYZ9mzgINBlUq18dWskYUJJdoYqVKmiO3emlkzrNidPX+qviWSJASxK1u+lH3MYYgoEilaxBhBCUePvI8NAJHlyoUiCagkcHJkC5eEC2fzYudjiAUXVVxMSSLlXj7tvcCJI2cOdXZu19DDDz0/Xf1nie/jkq/fVv7+rXwBDIDGZBAAgcZQwh+CpeRywCoM8iILJppEWMspqQhCiCGRdOjhh5BMUokggQAAOw==) +} + +.gallery[data-tags*="12227"] .caption:before { + background-image: url(data:image/gif;base64,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) +} + +.gallery[data-tags*="29963"] .caption:before { + background-image: url(data:image/gif;base64,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) +} + +.gallery-edit { + text-align: left; + overflow: auto +} + +.gallery-edit .gallery { + float: left +} + +.gallery-edit .tag-container { + display: inline-block +} + +#info-container { + height: auto; + padding: 40px; + padding-top: 10px; + padding-bottom: 20px; + text-align: left +} + +#info-container section.text { + padding-top: 10px; + padding-bottom: 10px +} + +#info-container section:not(:last-of-type) { + padding-bottom: 10px; + border-bottom: 1px solid #dde4e6 +} + +#info-container h1 { + font-size: 2em +} + +#info-container h2 { + font-size: 1.6em +} + +#info-container h3 { + font-size: 1.4em +} + +#info-container li { + margin: 5px +} + +#info-container a { + color: #ed2553 +} + +#info-container #thanks { + margin-top: 20px; + text-align: center +} + +.sort { + margin-top: -15px +} + +.sort:before { + content: ""; + display: block; + clear: both; + margin-top: 1em +} + +.sort a { + font-size: 20px; + display: inline-block; + padding: 20px +} + +.sort a.active { + font-weight: 700 +} + +.sort+.container { + margin-top: 0 +} + +#info { + height: auto; + padding: 10px; + text-align: left +} + +#info h1 { + font-size: 20px +} + +#info h2 { + font-size: 17px; + margin-top: 10px; + margin-bottom: 20px +} + +#info .field-name { + font-weight: 700; + margin-top: 5px; + margin-bottom: 5px +} + +#info .buttons { + margin-top: 30px +} + +#info .buttons .btn { + min-width: 120px; + text-align: center; + margin-left: 0; + margin-right: 5px; + margin-bottom: 10px +} + +#info a { + font-weight: 700 +} + +#profile-update input[type=file]#avatar { + display: none +} + +#profile-update #avatar-upload { + overflow: auto; + width: 200px; + margin-bottom: 10px +} + +#profile-update #avatar-upload img { + margin-bottom: 10px +} + +#profile-update #avatar-upload .btn { + width: 110px +} + +#profile-update #avatar-upload label[for=avatar] { + float: left; + width: 70px; + padding-right: 5px; + padding-left: 5px +} + +#profile-update #avatar-upload label[for=avatar-clear] { + float: right +} + +#profile-update #avatar-upload #avatar-clear { + position: relative; + top: 2px; + margin: 0; + margin-left: 3px +} + +#bigcontainer { + margin-bottom: 25px; + padding: 20px; + padding-top: 30px; + padding-bottom: 30px +} + +#bigcontainer form { + display: inline-block +} + +@media screen and (min-width: 768px) { + #bigcontainer #cover,#bigcontainer #info-block { + display:inline-block; + width: 48%; + vertical-align: top + } +} + +@media screen and (max-width: 500px) { + #bigcontainer #cover,#bigcontainer #info-block { + width:100%; + margin: .5px + } +} + +#bigcontainer #cover img,#bigcontainer #info-block img { + max-width: 100% +} + +.fa-heart,.fa-heart-o { + margin: 2px +} + +.lazyload { + background-color: #e3e9eb +} + +.lazyload-loading { + background: #dae2e4 +} + +#thumbnail-container { + margin-bottom: 25px; + padding: 15px; + text-align: left; + background-color: #2a3744 +} + +@media screen and (max-width: 980px) { + #thumbnail-container { + padding:5px; + padding-top: 10px; + border-radius: 0 + } +} + +#thumbnail-container .lazyload { + background-color: #303f4d +} + +#thumbnail-container .lazyload-loading { + background-color: #364657 +} + +#thumbnail-container .gallerythumb { + display: inline-block; + margin-bottom: 3px; + vertical-align: middle +} + +#thumbnail-container .gallerythumb a { + display: inline-block +} + +#related-container { + margin-bottom: 25px; + padding-bottom: 20px +} + +.commentform { + max-width: 100% +} + +.login-comment { + text-decoration: underline +} + +#comment-container { + padding: 20px +} + +#comment-container #id_body { + width: 85%; + height: 90px; + margin-bottom: 5px; + padding: 10px; + border: 0; + border-radius: 3px; + outline: 0; + -webkit-appearance: none +} + +.commentbutton { + width: 120px; + height: 40px; + color: #fff; + border: 0; + border-radius: 3px +} + +.comment { + display: flex; + text-align: left; + margin-bottom: 10px; + padding: 8px +} + +.comment .header { + display: flex; + flex-direction: row; + margin-bottom: 5px +} + +.comment .header time { + margin-left: .5em; + opacity: .6 +} + +.comment .header .right { + margin-left: auto; + text-align: right +} + +.comment .header .right .comment-delete { + opacity: .6 +} + +.comment .header .right .comment-delete:hover { + opacity: .9 +} + +.comment .body-wrapper { + flex: 1 +} + +.comment .body-wrapper .body { + word-break: break-word +} + +.comment .body-wrapper .body a { + color: #ed2553 +} + +.comment .body-wrapper .body a:hover { + color: #ef3d66; + text-decoration: underline +} + +.comment:target { + background-color: #d7e0e2 +} + +#favorites-search-bar { + width: 200px; + height: 35px; + padding: 10px; + border: 0; + border-radius: 3px; + outline: 0; + outline-width: 0; + outline-style: none; + background-color: #dae2e4; + -webkit-appearance: none +} + +#favorites-search-form { + margin-bottom: 20px +} + +#favorites-search { + display: inline-block +} + +#favorites-search input { + background-color: #ecf0f1 +} + +#favorites-search-button { + width: 40px; + height: 35px +} + +#favorites-random-button { + margin-left: -15px +} + +.remove-button { + margin-top: 5px; + margin-bottom: 10px; + background-color: #e32636 +} + +.remove-button:hover { + text-decoration: none; + background-color: #e6414f +} + +#favcontainer { + padding: 10px; + padding-bottom: 40px +} + +.removed { + opacity: .5 +} + +#tag-container { + padding-bottom: 5px; + -webkit-columns: 200px; + -moz-columns: 200px; + -ms-columns: 200px; + -o-columns: 200px; + columns: 200px; + -webkit-column-rule-color: #e2e8e9; + -webkit-column-rule-width: 1px; + -webkit-column-rule-style: solid; + -moz-column-rule-color: #e2e8e9; + -moz-column-rule-width: 1px; + -moz-column-rule-style: solid; + -ms-column-rule-color: #e2e8e9; + -ms-column-rule-width: 1px; + -ms-column-rule-style: solid; + -o-column-rule-color: #e2e8e9; + -o-column-rule-width: 1px; + -o-column-rule-style: solid; + column-rule-color: #e2e8e9; + column-rule-width: 1px; + column-rule-style: solid +} + +#tag-container .tag { + display: block; + padding-top: 5px; + padding-bottom: 5px; + border-radius: 5px; + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + page-break-inside: avoid; + background-color: transparent; + color: #34495e +} + +#tag-container .tag:hover { + background-color: #f5f7f7 +} + +#tag-container section { + border: 1px solid transparent; + border-radius: 5px +} + +#tag-container section:first-of-type h2 { + margin-top: 0 +} + +#tag-container section:target { + border-color: #cfd9db; + background-color: #f5f7f7 +} + +#tag-container section:target .tag:hover { + background-color: #fff +} + +input,input:focus { + -webkit-transition: none; + -moz-transition: none; + transition: none; + border: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: 0 +} + +div.form-control { + background-color: transparent +} + +.container.error h1 { + font-size: 50px +} + +.container.error blockquote { + font-size: 25px; + font-style: italic +} + +.container.error img { + max-width: 100% +} + +.nobold { + font-weight: 400 +} + +.hidden { + display: none +} + +#favorites-search { + padding-left: 20px; + padding-right: 60px; + margin-left: auto; + margin-right: auto; + max-width: 300px +} + +.avatar { + display: inline-block; + position: relative +} + +.avatar img { + display: inline-block; + vertical-align: middle; + width: 50px; + height: 50px; + margin-right: 10px +} + +.avatar .username { + display: inline-block; + vertical-align: middle +} + +.edit-queue { + width: 100% +} + +.edit-queue .user img { + vertical-align: middle; + margin-right: 5px +} + +.edit-queue tr td:nth-child(2) { + width: 20% +} + +.edit-queue tr td:nth-child(6) { + min-width: 160px +} + +.edit-queue tr.voted { + display: none +} + +.g-recaptcha { + display: inline-block +} + +.tag-autocomplete { + display: inline-block +} + +.tag-autocomplete .tag-wrapper { + display: inline-block +} + +.tag-autocomplete .autocomplete-wrapper { + position: relative; + display: inline-block +} + +.tag-autocomplete .autocomplete-wrapper.hidden { + display: none +} + +.tag-autocomplete .autocomplete-wrapper .tag-input { + font-weight: 400; + margin: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0 +} + +.tag-autocomplete .autocomplete-wrapper .dropdown { + z-index: 2; + position: absolute; + left: 0; + width: auto; + right: 0; + background-color: #364657; + margin-top: 0; + list-style-type: none; + padding-left: 0; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + box-shadow: 0 10px 20px rgba(0,0,0,.5) +} + +.tag-autocomplete .autocomplete-wrapper .dropdown li.active>a.tag { + background: #506984!important +} + +.tag-autocomplete .autocomplete-wrapper .dropdown li.disabled { + font-style: italic; + padding: 2px 6px 3px; + color: gray +} + +.tag-container .name { + font-weight: 700 +} + +.tag-container .tag.tag-deleted { + background-color: #643d3d; + text-decoration: line-through +} + +.tag-container .tag.tag-added { + background-color: #3d643f +} + +.tag-container .tag.tag-created { + background-color: #7c7b36 +} + +.tag-container .tag.tag-created .count { + color: #b3b3b3 +} + +.tag-container .tag.tag-new { + cursor: pointer +} + +.tag.tag-input { + margin-bottom: 0 +} + +#messages { + position: fixed; + top: 0; + width: 100%; + z-index: 20 +} + +#messages .alert { + display: flex; + padding: 15px; + margin-top: 10px; + border: 1px solid transparent; + border-radius: 4px +} + +#messages .alert.alert-info,#messages .alert.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +#messages .alert.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1 +} + +#messages .alert.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc +} + +#messages .alert .alert-close { + margin-left: auto; + color: #34495e +} + +.modal-wrapper { + display: block; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + padding: 10px; + background: rgba(0,0,0,.6) +} + +.modal-wrapper.modal-compact .modal-inner { + display: inline-block +} + +.modal-wrapper.modal-compact .modal-inner h1 { + display: none +} + +.modal-wrapper .modal-inner { + overflow: auto; + background-color: #fff; + border-radius: 5px; + max-width: 600px; + padding-top: 10px; + margin-left: auto; + margin-right: auto; + margin-top: 100px; + box-shadow: 0 0 60px rgba(0,0,0,.5) +} + +.modal-wrapper .modal-inner .contents { + padding: 10px +} + +.modal-wrapper .modal-inner .buttons { + padding: 5px; + margin-top: 10px; + background-color: #e6e6e6 +} + +#chatbanner { + margin: 20px +} + +#chatbanner img { + border: 2px solid #ed2553 +} + +.announcement { + margin-top: 20px; + margin-bottom: 20px; + margin-left: 5px; + margin-right: 5px; + font-size: 18px +} + +.announcement a[href] { + color: #ed2553 +} + +#errors { + text-align: center; + list-style-type: none; + padding-left: 0; + color: #ef808a +} + +select { + font-weight: 400 +} + +#page-container { + margin-bottom: 5px +} + +@media (max-width: 768px) { + #page-container img { + width:100%; + height: auto + } +} + +@media (min-width: 769px) { + #page-container img { + max-width:90%; + height: auto + } +} + +#page-container .pagination { + margin-bottom: 5px; + margin-top: 5px +} + +#page-container .pagination .first,#page-container .pagination .last,#page-container .pagination .next,#page-container .pagination .page,#page-container .pagination .previous { + font-size: 17px; + margin-bottom: 10px; + margin-top: 10px +} + +@media (min-width: 397px) { + #page-container .pagination .first,#page-container .pagination .last,#page-container .pagination .next,#page-container .pagination .page,#page-container .pagination .previous { + margin-right:20px; + margin-left: 20px + } +} + +#page-container .page-number .current,#page-container .page-number .num-pages { + font-weight: 600 +} + +html.reader,html.reader #content,html.reader body { + height: 100% +} + +html.reader body { + padding-top: 50px +} + +html.reader #content { + margin-top: 0 +} + +html.reader nav { + margin-top: -50px +} + +html.reader.nav-hidden body { + padding-top: 0 +} + +html.reader.nav-hidden nav { + display: none +} + +html.reader .advertisement.advertisement { + margin: 0; + padding: 0; + padding-top: 20px; + padding-bottom: 20px; + background-color: #324151; + max-width: 100%; + border-radius: 0 +} + +html.reader .reader-bar { + background-color: #3d5064; + color: #fff +} + +html.reader .reader-bar .reader-bar-contents { + max-width: 1280px; + margin-left: auto; + margin-right: auto +} + +html.reader .reader-bar a,html.reader .reader-bar button { + color: #fff; + display: inline-block; + line-height: 20px; + padding: 10px; + min-width: 40px; + min-height: 100%; + border-radius: 0 +} + +html.reader .reader-bar a:hover,html.reader .reader-bar button:hover { + background-color: #516a83 +} + +html.reader .reader-bar .reader-pagination { + display: inline-block +} + +html.reader .reader-bar .reader-pagination .page-number { + vertical-align: top +} + +html.reader .reader-bar .reader-pagination .page-number .current,html.reader .reader-bar .reader-pagination .page-number .num-pages { + font-weight: 700 +} + +html.reader .reader-bar .go-back { + float: left; + margin-right: -40px +} + +html.reader .reader-bar .reader-settings { + float: right; + margin-left: -40px +} + +html.reader #image-container { + -webkit-tap-highlight-color: rgba(255,255,255,0); + text-align: center; + height: 100%; + outline: 0; + height: auto +} + +html.reader #image-container img { + vertical-align: bottom; + height: auto; + max-width: 100%; + user-select: none +} + +html.reader #image-container.full-height { + height: -moz-calc(100% + 10px + 40px); + height: -webkit-calc(100% + 10px + 40px); + height: calc(100% + 10px + 40px) +} + +html.reader #image-container.fit-horizontal { + height: auto +} + +html.reader #image-container.fit-both { + height: -moz-calc(100% + 10px); + height: -webkit-calc(100% + 10px); + height: calc(100% + 10px) +} + +html.reader #image-container.fit-both img { + max-height: 100%; + width: auto +} + +html.theme-blue #thumbnail-container .lazyload,html.theme-blue .lazyload { + background-color: #303f4d +} + +html.theme-blue #thumbnail-container .lazyload-loading,html.theme-blue .lazyload-loading { + background-color: #364657 +} + +html.theme-blue,html.theme-blue body { + color: #d9d9d9; + background-color: #202a34 +} + +html.theme-blue a.btn { + color: #fff +} + +html.theme-blue a,html.theme-blue ul.nav.navbar-nav>li>a { + color: #d9d9d9 +} + +html.theme-blue ul.nav.navbar-nav>li.active>a { + color: #fff +} + +html.theme-blue .container { + background-color: #2a3744 +} + +html.theme-blue .gallery-thumbnail { + background-color: #303f4d +} + +html.theme-blue .tag { + color: #d9d9d9; + background: #3d5064 +} + +html.theme-blue .tag:hover { + background: #4b627a +} + +html.theme-blue #tag-container { + -webkit-column-rule-color: #3a4b5d; + -moz-column-rule-color: #3a4b5d; + -ms-column-rule-color: #3a4b5d; + -o-column-rule-color: #3a4b5d; + column-rule-color: #3a4b5d +} + +html.theme-blue #tag-container section:target { + border-color: #475d73; + background: #344454 +} + +html.theme-blue #tag-container section:target .tag:hover { + background: #3d5064 +} + +html.theme-blue #tag-container .tag { + color: #d9d9d9 +} + +html.theme-blue #tag-container .tag .count { + color: grey +} + +html.theme-blue #tag-container .tag:hover { + background: #344454 +} + +html.theme-blue .gallery:hover .caption { + box-shadow: 0 10px 20px rgba(0,0,0,.5) +} + +html.theme-blue .caption { + background-color: #3d5064; + color: #d9d9d9 +} + +html.theme-blue .pagination .first:hover,html.theme-blue .pagination .last:hover,html.theme-blue .pagination .next:hover,html.theme-blue .pagination .page:hover,html.theme-blue .pagination .previous:hover { + background-color: #3d5064 +} + +html.theme-blue .pagination .first.current,html.theme-blue .pagination .last.current,html.theme-blue .pagination .next.current,html.theme-blue .pagination .page.current,html.theme-blue .pagination .previous.current { + background-color: #344454 +} + +html.theme-blue .alphabetical-pagination a:hover,html.theme-blue .alphabetical-pagination span:hover { + background-color: #3d5064 +} + +html.theme-blue .alphabetical-pagination a.disabled,html.theme-blue .alphabetical-pagination span.disabled { + color: #737373 +} + +html.theme-blue .alphabetical-pagination a.current,html.theme-blue .alphabetical-pagination span.current { + background-color: #344454 +} + +html.theme-blue .comment:target { + background-color: #38495a +} + +html.theme-blue .form-control { + border: none; + background-color: inherit +} + +html.theme-blue code { + color: #a5b6c8; + border: none; + background-color: #3d5064 +} + +html.theme-blue #favorites-search input { + background-color: #fff +} + +html.theme-blue .modal-inner { + background-color: #2a3744 +} + +html.theme-blue .modal-inner .buttons { + background-color: #38495a +} + +html.theme-black,html.theme-black body { + color: #d9d9d9; + background-color: #0d0d0d +} + +html.theme-black a { + color: #d9d9d9 +} + +html.theme-black nav { + background-color: #1f1f1f +} + +html.theme-black nav a:hover { + background-color: #383838 +} + +html.theme-black nav .dropdown-menu.open { + box-shadow: 0 0 30px rgba(0,0,0,.5); + background-color: #383838 +} + +html.theme-black nav .dropdown-menu.open:before { + border-bottom-color: #383838 +} + +html.theme-black nav .dropdown-menu.open a:hover { + background-color: #525252 +} + +html.theme-black .tag-autocomplete .autocomplete-wrapper .dropdown { + background-color: #383838 +} + +html.theme-black #thumbnail-container,html.theme-black .container { + background-color: #1f1f1f +} + +html.theme-black #thumbnail-container .lazyload,html.theme-black .lazyload { + background-color: #262626 +} + +html.theme-black #thumbnail-container .lazyload-loading,html.theme-black .lazyload-loading { + background-color: #2e2e2e +} + +html.theme-black .gallery-thumbnail { + background-color: #212121 +} + +html.theme-black .tag { + color: #d9d9d9; + background: #4d4d4d +} + +html.theme-black .tag:hover { + background: #666 +} + +html.theme-black .tag .count { + color: grey +} + +html.theme-black #tag-container { + -webkit-column-rule-color: #2e2e2e; + -moz-column-rule-color: #2e2e2e; + -ms-column-rule-color: #2e2e2e; + -o-column-rule-color: #2e2e2e; + column-rule-color: #2e2e2e +} + +html.theme-black #tag-container section:target { + border-color: #404040; + background: #262626 +} + +html.theme-black #tag-container section:target .tag:hover { + background: #333 +} + +html.theme-black #tag-container .tag { + color: #d9d9d9 +} + +html.theme-black #tag-container .tag .count { + color: grey +} + +html.theme-black #tag-container .tag:hover { + background: #4d4d4d +} + +html.theme-black .gallery:hover .caption { + box-shadow: 0 10px 20px rgba(0,0,0,.5) +} + +html.theme-black .caption { + background-color: #404040; + color: #d9d9d9 +} + +html.theme-black #info-container section:not(:last-of-type) { + border-bottom: 1px solid #333 +} + +html.theme-black .pagination .first:hover,html.theme-black .pagination .last:hover,html.theme-black .pagination .next:hover,html.theme-black .pagination .page:hover,html.theme-black .pagination .previous:hover { + background-color: #333 +} + +html.theme-black .pagination .first.current,html.theme-black .pagination .last.current,html.theme-black .pagination .next.current,html.theme-black .pagination .page.current,html.theme-black .pagination .previous.current { + background-color: #262626 +} + +html.theme-black .alphabetical-pagination a:hover,html.theme-black .alphabetical-pagination span:hover { + background-color: #333 +} + +html.theme-black .alphabetical-pagination a.disabled,html.theme-black .alphabetical-pagination span.disabled { + color: #737373 +} + +html.theme-black .alphabetical-pagination a.current,html.theme-black .alphabetical-pagination span.current { + background-color: #262626 +} + +html.theme-black .comment:target { + background-color: #2b2b2b +} + +html.theme-black .form-control { + border: none; + background-color: inherit +} + +html.theme-black .btn { + color: #fff +} + +html.theme-black .btn-secondary { + background-color: #4d4d4d +} + +html.theme-black .btn-secondary:focus,html.theme-black .btn-secondary:hover { + background-color: #595959 +} + +html.theme-black #footer-container .footer-item a { + color: #333 +} + +html.theme-black #footer-container .footer-item a:hover { + color: #666 +} + +html.theme-black code { + color: #ed2553; + border: none; + background-color: #292929 +} + +html.theme-black #favorites-search input { + background-color: #fff +} + +html.theme-black.reader .reader-bar { + background-color: #383838 +} + +html.theme-black.reader .reader-bar a:hover,html.theme-black.reader .reader-bar button:hover { + background-color: #525252 +} + +html.theme-black.reader .advertisement { + background-color: #292929 +} + +html.theme-black .modal-inner { + background-color: #1f1f1f +} + +html.theme-black .modal-inner .buttons { + background-color: #383838 +} \ No newline at end of file diff --git a/nhentai/viewer/main.html b/nhentai/viewer/main.html new file mode 100644 index 0000000..3f170a5 --- /dev/null +++ b/nhentai/viewer/main.html @@ -0,0 +1,37 @@ + + + + + + + + + nHentai + » Viewer + + {STYLE} + + + +
+ +

Main Folder({COUNT})

+ +
+ + {PICTURE} + + +
+ +
+ + + + \ No newline at end of file -- 2.44.0