diff --git a/README.md b/README.md index 347d671..28850c7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Viper Ripper! +# VRipper! This is my spin for a cross platform gallery ripper app for [vipergirls](https://vipergirls.to) website. The purpose of this project is to build a robust and clean application to conveniently download photo galleries using modern web technologies, Java + Spring boot for the back end and angular + electron for the front end. @@ -15,8 +15,16 @@ Most people will be interested only on the desktop app, however if you have a na To build the server app: mvn clean install -DskipTests + To build the desktop app: mvn clean install -Pelectron -DskipTests -Maven will automatically handle front end compilation. However, for development, you will need to install a recent version of nodejs on your system. +Maven will automatically handle front end compilation. However, for development, you will need to install a recent +version of nodejs on your system. + +If you feel generous and want to support me, you can donate some coins, and I would be very grateful 🙏 + +I accept Bitcoin (BTC) for donations, following is my address + + bc1q9jzzw3st49r9vmxgtylq4vrd67cl7zfclf3lsq diff --git a/vripper-ui/src/app/about/about-component.component-scss-theme.scss b/vripper-ui/src/app/about/about-component.component-scss-theme.scss new file mode 100644 index 0000000..34a779a --- /dev/null +++ b/vripper-ui/src/app/about/about-component.component-scss-theme.scss @@ -0,0 +1,10 @@ +@import '~@angular/material/theming'; + +@mixin about-component-theme($theme) { + $foreground: map-get($theme, foreground); + $background: map-get($theme, background); + + .about-link, .about-icon { + color: mat-color($foreground, text); + } +} diff --git a/vripper-ui/src/app/about/about-component.html b/vripper-ui/src/app/about/about-component.html new file mode 100644 index 0000000..0289037 --- /dev/null +++ b/vripper-ui/src/app/about/about-component.html @@ -0,0 +1,62 @@ +
+
+

About

+
+ + + +
+ VRipper + {{version}} +
+ +
+ Due to the lack of cross platform Ripper for vipergirls.to and the official one being no longer maintained, + this application was created as a personal project of mine to fulfill the old one's tasks.
+ Soon after, people were interested in it and i released it to the public.
+ This project is built to be a robust and clean replacement of the old one, using modern technologies to + conveniently download photo galleries from the forum.
+ I aim to provide you with a software that is easy to use have a nice and intuitive design and interface.
+ The project is currently maintained by me 'theghooost', a member of the vipergirls.to forum, feel free to PM + if you need anything.
+
+ +
+ + + +

Contribution

+
+ You can contribute to the project by testing new releases, raising bug reports or coding.
+ The project is open source and is hosted in github.com.
+

Github:

https://github.com/death-claw/vripper-project +

Issues:

https://github.com/death-claw/vripper-project/issues +

PM:

https://vipergirls.to/members/244439-theghooost +
+ +
+ + + +

Donation

+
+ If you feel generous and want to support me, you can donate some coins, and I would be very grateful 🙏
+ I accept Bitcoin (BTC) for donations, following is my address +

bc1q9jzzw3st49r9vmxgtylq4vrd67cl7zfclf3lsq

+
+
+
+
+ + + +
diff --git a/vripper-ui/src/app/about/about-component.scss b/vripper-ui/src/app/about/about-component.scss new file mode 100644 index 0000000..7556cd4 --- /dev/null +++ b/vripper-ui/src/app/about/about-component.scss @@ -0,0 +1,39 @@ +.header-image { + background-size: cover; + background-image: url('../../assets/v.svg'); +} + +.section { + padding-top: 12px; + padding-bottom: 12px; +} + +.header { + padding-bottom: 12px; +} + +.mat-card-avatar { + width: 50px; + height: 50px; +} + +.no-bottom-margin { + margin-bottom: 0; +} + +.no-top-margin { + margin-top: 0; +} + +.inline-block { + display: inline-block; +} + +.content { + padding-bottom: 10px; + padding-top: 10px; +} + +.margin-left { + margin-left: 5px; +} diff --git a/vripper-ui/src/app/about/about-component.ts b/vripper-ui/src/app/about/about-component.ts new file mode 100644 index 0000000..2f40640 --- /dev/null +++ b/vripper-ui/src/app/about/about-component.ts @@ -0,0 +1,27 @@ +import {ChangeDetectionStrategy, Component} from '@angular/core'; +import {environment} from '../../environments/environment'; +import {ElectronService} from 'ngx-electron'; + +@Component({ + selector: 'app-about', + templateUrl: './about-component.html', + styleUrls: ['./about-component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AboutComponent { + + version = environment.version; + + constructor( + public electronService: ElectronService + ) { + } + + goTo(url: string) { + if (this.electronService.isElectronApp) { + this.electronService.shell.openExternal(url); + } else { + window.open(url, '_blank'); + } + } +} diff --git a/vripper-ui/src/app/app.module.ts b/vripper-ui/src/app/app.module.ts index 5d0dea4..8b2a0bd 100644 --- a/vripper-ui/src/app/app.module.ts +++ b/vripper-ui/src/app/app.module.ts @@ -29,6 +29,7 @@ import {MatIconRegistry} from '@angular/material/icon'; import {DomSanitizer} from '@angular/platform-browser'; import {EventLogComponent} from './event-log/event-log.component'; import {EventLogMessageDialogComponent} from './event-log/message-dialog/event-log-message-dialog.component'; +import {AboutComponent} from './about/about-component'; @NgModule({ declarations: [ @@ -48,7 +49,8 @@ import {EventLogMessageDialogComponent} from './event-log/message-dialog/event-l PostContextMenuComponent, AlternativeTitleComponent, EventLogComponent, - EventLogMessageDialogComponent + EventLogMessageDialogComponent, + AboutComponent ], imports: [ BrowserAnimationsModule, diff --git a/vripper-ui/src/app/toolbar/toolbar.component.html b/vripper-ui/src/app/toolbar/toolbar.component.html index 8313468..054c409 100644 --- a/vripper-ui/src/app/toolbar/toolbar.component.html +++ b/vripper-ui/src/app/toolbar/toolbar.component.html @@ -59,6 +59,9 @@ + diff --git a/vripper-ui/src/app/toolbar/toolbar.component.ts b/vripper-ui/src/app/toolbar/toolbar.component.ts index 3b7b106..939db58 100644 --- a/vripper-ui/src/app/toolbar/toolbar.component.ts +++ b/vripper-ui/src/app/toolbar/toolbar.component.ts @@ -20,6 +20,7 @@ import {PostsService} from '../services/posts.service'; import {HomeTabsService} from '../services/home-tabs.service'; import {LinkCollectorService} from '../services/link-collector.service'; import {EventLogService} from '../services/event-log.service'; +import {AboutComponent} from '../about/about-component'; @Component({ selector: 'app-toolbar', @@ -237,4 +238,25 @@ export class ToolbarComponent implements OnInit, OnDestroy { ngOnDestroy() { this.subscriptions.forEach(e => e.unsubscribe()); } + + openAbout(): void { + const dialogRef = this.dialog.open(AboutComponent, { + width: '70%', + height: '70%', + maxWidth: '100vw', + maxHeight: '100vh' + }); + + const smallDialogSubscription = this.isExtraSmall.subscribe(result => { + if (result.matches) { + dialogRef.updateSize('100%', '100%'); + } else { + dialogRef.updateSize('70%', '70%'); + } + }); + + dialogRef.afterClosed().subscribe(result => { + smallDialogSubscription.unsubscribe(); + }); + } } diff --git a/vripper-ui/src/assets/v.svg b/vripper-ui/src/assets/v.svg index 33d7965..a63264a 100644 --- a/vripper-ui/src/assets/v.svg +++ b/vripper-ui/src/assets/v.svg @@ -1,39 +1,45 @@ - - + id="defs2"> + + - - V + style="fill:#aa0000;fill-opacity:1;stroke-width:0.35248"/> + V diff --git a/vripper-ui/src/styles.scss b/vripper-ui/src/styles.scss index 4f32911..620ac02 100644 --- a/vripper-ui/src/styles.scss +++ b/vripper-ui/src/styles.scss @@ -32,12 +32,14 @@ @import 'src/app/status-bar/status-bar.component.scss-theme'; @import 'app/app.component.scss-theme.scss'; @import 'src/app/toolbar/toolbar.component.scss-theme'; +@import 'src/app/about/about-component.component-scss-theme'; @import 'grid-theme.scss'; @mixin custom-components-theme($theme, $dark: false) { @include status-bar-component-theme($theme); @include app-component-theme($theme); @include toolbar-theme($theme, $dark); + @include about-component-theme($theme) } .dark-theme {