Code Monkey home page Code Monkey logo

moe-moe-secretary's Introduction

CI Status Codacy Badge

Moe Moe Secretary - Your waifu (almost) always with you!

Index

Installing

In order to install Moe Moe Secretary, please download the latest jar from the Github Releases
You'll need a JRE (1.8+) installed, you can get it here.
Place the JAR file in a secure place, better if it's in a folder

Usage

All the key commands must be used after clicking the waifu in order to obtains window focus.

  • Double click the jar file to start Moe Moe Secretary,
    once started you'll find a waifu floating on your desktop (Ptilopsis from Arknights)
  • Move her around by dragging her
  • Click her to trigger "on click" dialogs
  • Close her by clicking the mouse wheel on her
    (if you don't have a mouse wheel, ALT F4 combination will do the job)
  • If the adapter supports skin, you can switch them pressing J and K keys
  • By default the waifu should be on always-on-top mode, to toggle it press the T key
  • Flip the waifu by pressing S key
  • Toggle floating effect by pressing the F key

Configuration

In the JAR file's folder, after starting MMS at least once, there will be a folder named "config",
inside it you'll find a file named config.properties.

config.properties file contains all the settings for your secretary.

TIP: Saving this file will apply the changes to the secretary on the fly.

Check the next table to see all the possible Adapters and adapter-configurations.
All the other settings are self-explanatory.

Adapters

Adapters are used to access different waifus on the internet.
Moe Moe Secretary uses public wikis data to download images and dialogs, where available.
If you think that a wiki does not like this behaviour, please open an issue.

The following table shows the adapter names to be used in the .properties file and their relative detailed chapter.

Adapter Name Chapter
AzurLane Azur Lane Chapter
GenshinImpact Genshin Impact Chapter
Arknights Arknights Chapter
SinoAlice SinoAlice Chapter
SIFIdol SIFIdol Chapter
GirlsFrontline Girls Frontline Chapter
MirageMemorial Mirage Memorial Chapter
Github Github Chapter
MMS Official Github MMS Github Chapter
File File Chapter
Features table
Feature Azur Lane Arknights SINoALICE SIFIdol GirlsFrontline MirageMemorial
Dialogs
Voices
Skins

Azur Lane Adapter

This adapter takes the data from https://azurlane.koumakan.jp
Ship names are the same as in-game names, if you can't really find one take a look here.

Genshin Impact Adapter

This adapter takes the data from https://genshin-impact.fandom.com
Character names are the same as in-game names, if you can't really find one take a look here.

Arknights Adapter

This adapter takes the data from https://github.com/Aceship/AN-EN-Tags
Operator names are the same as in-game names, if you can't really find one, search for it here

SinoAlice Adapter

This adapter takes the data from https://sinoalice.game-db.tw
Characters names are the same as in-game names, if you can't really find one take a look here.

School Idol Festival Adapter

This adapter takes card images from https://schoolido.lu and quotes from https://decaf.kouhi.me/lovelive/index.php
This adapter requires the card ID as waifu.name in the config.properties, be sure to match the card ID from here.

Girls Frontline Adapter

This adapter takes the data from https://en.gfwiki.com
Weapon names are the same as in-game names, if you can't really find one take a look here

Mirage Memorial Adapter

This adapter takes the data from https://miragememorialglobal.fandom.com/wiki
Servant names are the same as in-game names, if you can't really find one take a look here:
find your servant, click on the image and look at the URL, it'll end with "?file=Aristotle.png"
use the string after = (without .png) (in this case Aristotle)

Github Adapter

Github adapter is the best one, but it has a cost: waifus must be implemented manually first.
Moe Moe Secretary has an official repository for custom waifus (mostly VTubers), check the next chapter.

Github adapter requires some additional parameters in the config.properties:

adapter=Github
waifu.name=path/Name
adapter.file.format=format
github.repo=Username/repo
github.branch=branch

Those are the required parameters in order to use the github adapter,
check the next chapter to see some example values.

Extra features
  • You can create your own waifus and host them on Github.

This adapter supports all MMS features!

MMS Github Adapter

Moe Moe Secretary has its own Github waifu repository.

In order to use it set the following values in your config.properties:

adapter=Github
waifu.name=VTuber/Hololive/Calliope
adapter.file.format=YAML
github.repo=KaikyuLotus/moe-moe-secretary-waifus
github.branch=master

With those settings Calliope-sama should pop-up on your desktop!

Want to add more waifus?
Create an issue to add them or fork that repo and add them yourself, I'll accept PRs.

File Adapter

Please take a look at this link:
https://telegra.ph/Moe-Moe-Secretary-File-Adapter-Configuration-01-12
It may be out of date, if so please open an issue or contact me on Telegram.

Help

If MMS crashes with a certain adapter or character you can open an issue or join the official Telegram group!
We also have a CI bot, so you can update your MMS version directly from Telegram!
Also check the FAQs

FAQ

  • Q: I want my waifu to start on my PC startup, how to do it?
    A: Set waifu.autoStartupEnabled to true in your config.properties
  • Q: MMS requires internet access to work?
    A: Yes, it does, if you don't want it you could use the file adapter.
  • Q: Can you add <character name>?
    A: Yes, most probably, please open an issue with some details of the requested character.

Contributing

Details on contributions will be added later.

Screenshots


Ptilopsis from Arknights helping me with docs

Fubuki and her conifguration

moe-moe-secretary's People

Contributors

ale183 avatar dependabot[bot] avatar kaikyulotus avatar kaikyutest avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

moe-moe-secretary's Issues

Arknights Adapter Error

Here is another error, I guess this program broke while you were inactive...
This time it's Arknights Adapter Error

Loading default config first
Found custom config file, loading it...
Starting Arknights with name Texas
Registered on boot
Getting Arknights character data
Loading chwd data...
Loading character data...
Loading skins...
Skins loaded
Character data loaded
Exception in thread "Thread-1" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 132200 column 23 path $.
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
	at com.google.gson.Gson.fromJson(Gson.java:927)
	at com.google.gson.Gson.fromJson(Gson.java:892)
	at com.google.gson.Gson.fromJson(Gson.java:841)
	at com.google.gson.Gson.fromJson(Gson.java:813)
	at com.kitsunecode.mms.core.adapters.impl.adapterentities.arknights.charword.CharwordMap.fromJson(CharwordMap.java:13)
	at com.kitsunecode.mms.core.adapters.impl.Arknights.lambda$loadFromCustomSource$0(Arknights.java:52)
	at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 132200 column 23 path $.
	at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
	... 10 more
Parsing data...
com.kitsunecode.mms.core.entities.exceptions.StartFailedException: Critical error while creating the adapter: NullPointerException: null
	at com.kitsunecode.mms.core.utils.Util.getWaifuFromAdapterName(Util.java:249)
	at com.kitsunecode.mms.core.Main.lambda$initialize$0(Main.java:37)
	at com.kitsunecode.mms.core.utils.Util.catchMoeMoeExceptionsAndExit(Util.java:339)
	at com.kitsunecode.mms.core.Main.initialize(Main.java:35)
	at com.kitsunecode.mms.core.Main.main(Main.java:45)
Caused by: com.kitsunecode.mms.core.entities.exceptions.StartFailedException: NullPointerException: null
	at com.kitsunecode.mms.core.adapters.IWaifuAdapter.init(IWaifuAdapter.java:68)
	at com.kitsunecode.mms.core.utils.Util.getWaifuFromAdapterName(Util.java:234)
	... 4 more
Caused by: java.lang.NullPointerException
	at com.kitsunecode.mms.core.adapters.impl.Arknights.loadFromCustomSource(Arknights.java:85)
	at com.kitsunecode.mms.core.adapters.IWaifuAdapter.init(IWaifuAdapter.java:50)
	... 5 more

Azur Lane Adapter Error

Hello, there is Out of Bounds error for Azur Lane Bremerton adapter.

Here is the log:

Loading default config first
Found custom config file, loading it...
Starting AzurLane with name Bremerton
Registered on boot
Getting ship quotes
Getting ship images
Parsing data...
Loading dialogs
Loading dialogs of language Chinese
com.kitsunecode.mms.core.entities.exceptions.StartFailedException: Critical error while creating the adapter: IndexOutOfBoundsException: Index: 0, Size: 0
	at com.kitsunecode.mms.core.utils.Util.getWaifuFromAdapterName(Util.java:249)
	at com.kitsunecode.mms.core.Main.lambda$initialize$0(Main.java:37)
	at com.kitsunecode.mms.core.utils.Util.catchMoeMoeExceptionsAndExit(Util.java:339)
	at com.kitsunecode.mms.core.Main.initialize(Main.java:35)
	at com.kitsunecode.mms.core.Main.main(Main.java:45)
Caused by: com.kitsunecode.mms.core.entities.exceptions.StartFailedException: IndexOutOfBoundsException: Index: 0, Size: 0
	at com.kitsunecode.mms.core.adapters.IWaifuAdapter.init(IWaifuAdapter.java:68)
	at com.kitsunecode.mms.core.utils.Util.getWaifuFromAdapterName(Util.java:234)
	... 4 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(ArrayList.java:659)
	at java.util.ArrayList.remove(ArrayList.java:498)
	at com.kitsunecode.mms.core.adapters.impl.AzurLane.loadDialogs(AzurLane.java:86)
	at com.kitsunecode.mms.core.adapters.impl.AzurLane.loadDialogs(AzurLane.java:74)
	at com.kitsunecode.mms.core.adapters.impl.AzurLane.loadFromCustomSource(AzurLane.java:58)
	at com.kitsunecode.mms.core.adapters.IWaifuAdapter.init(IWaifuAdapter.java:50)
	... 5 more

Logout dialog

Add dialog event "onLogout" (or something similar) and use it on secretary closing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.