Skip to content

Commit

Permalink
2.0.0 release yuppie
Browse files Browse the repository at this point in the history
  • Loading branch information
cranci1 committed Jun 17, 2024
1 parent 03d9179 commit a4ed1b9
Show file tree
Hide file tree
Showing 17 changed files with 908 additions and 160 deletions.
14 changes: 11 additions & 3 deletions AnimeGen.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
objects = {

/* Begin PBXBuildFile section */
132376E12C20602900D87012 /* Tags Selection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132376E02C20602900D87012 /* Tags Selection.swift */; };
132376E32C20606400D87012 /* ImageGenerationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132376E22C20606400D87012 /* ImageGenerationSettings.swift */; };
133C4C872BE67CAB00258EDD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133C4C862BE67CAB00258EDD /* AppDelegate.swift */; };
133C4C892BE67CAB00258EDD /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133C4C882BE67CAB00258EDD /* SceneDelegate.swift */; };
133C4C8B2BE67CAB00258EDD /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133C4C8A2BE67CAB00258EDD /* ViewController.swift */; };
Expand Down Expand Up @@ -62,6 +64,8 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
132376E02C20602900D87012 /* Tags Selection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Tags Selection.swift"; sourceTree = "<group>"; };
132376E22C20606400D87012 /* ImageGenerationSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageGenerationSettings.swift; sourceTree = "<group>"; };
133C4C832BE67CAB00258EDD /* AnimeGen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AnimeGen.app; sourceTree = BUILT_PRODUCTS_DIR; };
133C4C862BE67CAB00258EDD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
133C4C882BE67CAB00258EDD /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -250,8 +254,8 @@
13D4FC2B2BE7710C00BC3D1C /* Hmtai */ = {
isa = PBXGroup;
children = (
13D4FC272BE7710400BC3D1C /* HmtaiReader.swift */,
13D4FC282BE7710400BC3D1C /* HmtaiSender.swift */,
13D4FC272BE7710400BC3D1C /* HmtaiReader.swift */,
);
path = Hmtai;
sourceTree = "<group>";
Expand All @@ -269,6 +273,8 @@
13AB1D292BE93E3D009132CB /* Historyy.swift */,
13DD19D92BEA58B00034B014 /* SettingsMain.swift */,
13AC382B2BEFA34A00676546 /* APIsValid.swift */,
132376E02C20602900D87012 /* Tags Selection.swift */,
132376E22C20606400D87012 /* ImageGenerationSettings.swift */,
);
path = Settings;
sourceTree = "<group>";
Expand Down Expand Up @@ -379,6 +385,7 @@
136BD7E42BE7DFEE00ED23AE /* AppPref.swift in Sources */,
13D4FBEB2BE76D0600BC3D1C /* ImageExtensions.swift in Sources */,
13D4FBE92BE768C100BC3D1C /* HeartButton.swift in Sources */,
132376E32C20606400D87012 /* ImageGenerationSettings.swift in Sources */,
13D4FC212BE770EC00BC3D1C /* kyoko.swift in Sources */,
13D4FBF22BE76DCA00BC3D1C /* Web-Share.swift in Sources */,
13AC382C2BEFA34A00676546 /* APIsValid.swift in Sources */,
Expand Down Expand Up @@ -416,6 +423,7 @@
13AB1D2A2BE93E3D009132CB /* Historyy.swift in Sources */,
133C4C892BE67CAB00258EDD /* SceneDelegate.swift in Sources */,
136BD7E62BE7E1B300ED23AE /* Contents.swift in Sources */,
132376E12C20602900D87012 /* Tags Selection.swift in Sources */,
13C1E03C2BE9068600A27DEE /* AboutPage.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -561,7 +569,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.9.5;
MARKETING_VERSION = 2.0.0;
PRODUCT_BUNDLE_IDENTIFIER = me.cranci.AnimeGen;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
Expand Down Expand Up @@ -592,7 +600,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.9.5;
MARKETING_VERSION = 2.0.0;
PRODUCT_BUNDLE_IDENTIFIER = me.cranci.AnimeGen;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
Expand Down
Binary file not shown.
15 changes: 12 additions & 3 deletions AnimeGen/APIs Requests/Hmtai/HmtaiSender.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,24 @@ extension ViewController {
let categories3: [String]
let endpointPrefix: String

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsHmtai") as? [String], !selectedTags.isEmpty {
categories3 = selectedTags
} else {
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories3 = ["ass", "anal", "bdsm", "classic", "cum", "creampie", "manga", "femdom", "hentai", "incest", "masturbation", "public", "ero", "orgy", "elves", "yuri", "pantsu", "pussy", "glasses", "cuckold", "blowjob", "boobjob", "handjob", "footjob", "boobs", "thighs", "ahegao", "uniform", "gangbang", "tentacles", "gif", "nsfwNeko", "nsfwMobileWallpaper", "zettaiRyouiki"]
} else {
categories3 = ["wave", "wink", "tea", "bonk", "punch", "poke", "bully", "pat", "kiss", "kick", "blush", "feed", "smug", "hug", "cuddle", "cry", "cringe", "slap", "five", "glomp", "happy", "hold", "nom", "smile", "throw", "lick", "bite", "dance", "boop", "sleep", "like", "kill", "tickle", "nosebleed", "threaten", "depression", "wolf_arts", "jahy_arts", "neko_arts", "coffee_arts", "wallpaper", "mobileWallpaper"]
}
}

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories3 = ["ass", "anal", "bdsm", "classic", "cum", "creampie", "manga", "femdom", "hentai", "incest", "masturbation", "public", "ero", "orgy", "elves", "yuri", "pantsu", "pussy", "glasses", "cuckold", "blowjob", "boobjob", "handjob", "footjob", "boobs", "thighs", "ahegao", "uniform", "gangbang", "tentacles", "gif", "nsfwNeko", "nsfwMobileWallpaper", "zettaiRyouiki"]
endpointPrefix = "https://hmtai.hatsunia.cfd/nsfw/"
} else {
categories3 = ["wave", "wink", "tea", "bonk", "punch", "poke", "bully", "pat", "kiss", "kick", "blush", "feed", "smug", "hug", "cuddle", "cry", "cringe", "slap", "five", "glomp", "happy", "hold", "nom", "smile", "throw", "lick", "bite", "dance", "boop", "sleep", "like", "kill", "tickle", "nosebleed", "threaten", "depression", "wolf_arts", "jahy_arts", "neko_arts", "coffee_arts", "wallpaper", "mobileWallpaper"]
endpointPrefix = "https://hmtai.hatsunia.cfd/sfw/"
}

let randomCategory3 = categories3.randomElement() ?? "pat"
let randomIndex = Int(arc4random_uniform(UInt32(categories3.count)))
let randomCategory3 = categories3[randomIndex]
let apiEndpoint = "\(endpointPrefix)\(randomCategory3)"

guard let url = URL(string: apiEndpoint) else {
Expand Down
14 changes: 11 additions & 3 deletions AnimeGen/APIs Requests/kyoko.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@ extension ViewController {
guard let self = self else { return }

var endpointPrefix: String
var categories: [String]
var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsKyoko") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["waifu", "neko", "trap", "blowjob"]
} else {
categories = ["waifu", "neko", "shinobu", "megumin", "bully", "cuddle", "cry", "hug", "awoo", "kiss", "lick", "pat", "smug", "bonk", "blush", "smile", "nom", "bite", "glomp", "slap", "kick", "happy", "poke", "dance"]
}
}

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["waifu", "neko", "trap", "blowjob"]
endpointPrefix = "https://waifu.rei.my.id/nsfw/"
} else {
categories = ["waifu", "neko", "shinobu", "megumin", "bully", "cuddle", "cry", "hug", "awoo", "kiss", "lick", "pat", "smug", "bonk", "blush", "smile", "nom", "bite", "glomp", "slap", "kick", "happy", "poke", "dance"]
endpointPrefix = "https://waifu.rei.my.id/sfw/"
}

Expand Down
14 changes: 11 additions & 3 deletions AnimeGen/APIs Requests/n-sfw.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@ extension ViewController {
guard let self = self else { return }

var endpointPrefix: String
var categories: [String]
var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsN-Sfw.Com") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["anal","ass", "blowjob", "breeding", "buttplug", "cages", "ecchi", "feet", "fo", "furry", "gif", "hentai", "legs", "masturbation", "milf", "muscle", "neko", "paizuri", "petgirls", "pierced", "selfie", "smothering", "socks", "trap", "vagina", "yaoi", "yuri"]
} else {
categories = ["bunny-girl", "charlotte", "date-a-live", "death-note", "demon-slayer", "haikyu", "hxh", "kakegurui", "konosuba", "komi", "memes", "naruto", "noragami", "one-piece", "rag", "sakurasou", "sao", "sds", "spy-x-family", "takagi-san", "toradora", "your-name"]
}
}

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["anal","ass", "blowjob", "breeding", "buttplug", "cages", "ecchi", "feet", "fo", "furry", "gif", "hentai", "legs", "masturbation", "milf", "muscle", "neko", "paizuri", "petgirls", "pierced", "selfie", "smothering", "socks", "trap", "vagina", "yaoi", "yuri"]
endpointPrefix = "https://api.n-sfw.com/nsfw/"
} else {
categories = ["bunny-girl", "charlotte", "date-a-live", "death-note", "demon-slayer", "haikyu", "hxh", "kakegurui", "konosuba", "komi", "memes", "naruto", "noragami", "one-piece", "rag", "sakurasou", "sao", "sds", "spy-x-family", "takagi-san", "toradora", "your-name"]
endpointPrefix = "https://api.n-sfw.com/sfw/"
}

Expand Down
43 changes: 26 additions & 17 deletions AnimeGen/APIs Requests/nekos-best.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,36 @@ extension ViewController {
func loadImageFromNekosBest() {
startLoadingIndicator()

let categories = ["neko", "waifu", "kitsune"]

let randomIndex = Int(arc4random_uniform(UInt32(categories.count)))
let randomCategory = categories[randomIndex]
DispatchQueue.global().async { [weak self] in
guard let self = self else { return }

var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsNekos.Best") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
categories = ["neko", "waifu", "kitsune"]
}

let randomIndex = Int(arc4random_uniform(UInt32(categories.count)))
let randomCategory = categories[randomIndex]

let apiEndpoint = "https://nekos.best/api/v2/\(randomCategory)"
let apiEndpoint = "https://nekos.best/api/v2/\(randomCategory)"

guard let components = URLComponents(string: apiEndpoint) else {
print("Invalid URL")
stopLoadingIndicator()
return
}
guard let url = URL(string: apiEndpoint) else {
print("Invalid URL")
DispatchQueue.main.async {
self.stopLoadingIndicator()
}
return
}

guard let url = components.url else {
print("Invalid URL components")
stopLoadingIndicator()
return
let request = URLRequest(url: url)

DispatchQueue.main.async {
self.fetchImage(with: request, tag: randomCategory)
}
}

let request = URLRequest(url: url)
fetchImage(with: request, tag: randomCategory)
}

private func fetchImage(with request: URLRequest, tag: String) {
Expand Down
8 changes: 7 additions & 1 deletion AnimeGen/APIs Requests/nekos-life.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@ extension ViewController {
guard let self = self else { return }

let endpointPrefix = "https://nekos.life/api/v2/img/"
let categories = ["tickle", "slap", "pat", "neko", "kiss", "hug", "fox_girl", "feed", "cuddle", "ngif", "smug", "wallpaper", "gecg", "avatar", "waifu"]
var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsNekos.Life") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
categories = ["tickle", "slap", "pat", "neko", "kiss", "hug", "fox_girl", "feed", "cuddle", "ngif", "smug", "gecg", "avatar", "waifu"]
}

let randomIndex = Int(arc4random_uniform(UInt32(categories.count)))
let randomCategory = categories[randomIndex]
Expand Down
16 changes: 9 additions & 7 deletions AnimeGen/APIs Requests/nekosbot.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,17 @@ extension ViewController {
DispatchQueue.global().async { [weak self] in
guard let self = self else { return }

var endpointPrefix: String
var categories: [String]
let endpointPrefix: String = "https://nekobot.xyz/api/image?type="
var categories: [String] = []

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["hentai", "hkitsune", "hanal", "hthigh", "hboobs", "yaoi"]
endpointPrefix = "https://nekobot.xyz/api/image?type="
if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsNekosbot") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
categories = ["neko", "coffee", "food", "kemonomimi"]
endpointPrefix = "https://nekobot.xyz/api/image?type="
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["hentai", "hkitsune", "hanal", "hthigh", "hboobs", "yaoi"]
} else {
categories = ["neko", "coffee", "food", "kemonomimi"]
}
}

let randomIndex = Int(arc4random_uniform(UInt32(categories.count)))
Expand Down
14 changes: 11 additions & 3 deletions AnimeGen/APIs Requests/purr.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@ extension ViewController {
guard let self = self else { return }

var endpointPrefix: String
var categories: [String]
var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsPurr") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["anal/gif", "blowjob/gif", "cum/gif", "fuck/gif", "neko/gif", "pussylick/gif", "solo/gif", "solo_male/gif", "threesome_fff/gif", "threesome_ffm/gif", "threesome_mmf/gif", "yuri/gif", "neko/img"]
} else {
categories = ["angry/gif", "bite/gif", "blush/gif", "comfy/gif", "cry/gif", "cuddle/gif", "dance/gif", "eevee/gif", "fluff/gif", "holo/gif", "hug/gif", "kiss/gif", "lay/gif", "lick/gif", "neko/gif", "pat/gif", "poke/gif", "pout/gif", "slap/gif", "smile/gif", "tail/gif", "tickle/gif", "background/img", "eevee/img", "holo/img", "icon/img", "kitsune/img", "neko/img", "okami/img", "senko/img", "shiro/img"]
}
}

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["anal/gif", "blowjob/gif", "cum/gif", "fuck/gif", "neko/gif", "pussylick/gif", "solo/gif", "solo_male/gif", "threesome_fff/gif", "threesome_ffm/gif", "threesome_mmf/gif", "yuri/gif", "neko/img"]
endpointPrefix = "https://purrbot.site/api/img/nsfw/"
} else {
categories = ["angry/gif", "bite/gif", "blush/gif", "comfy/gif", "cry/gif", "cuddle/gif", "dance/gif", "eevee/gif", "fluff/gif", "holo/gif", "hug/gif", "kiss/gif", "lay/gif", "lick/gif", "neko/gif", "pat/gif", "poke/gif", "pout/gif", "slap/gif", "smile/gif", "tail/gif", "tickle/gif", "background/img", "eevee/img", "holo/img", "icon/img", "kitsune/img", "neko/img", "okami/img", "senko/img", "shiro/img"]
endpointPrefix = "https://purrbot.site/api/img/sfw/"
}

Expand Down
18 changes: 10 additions & 8 deletions AnimeGen/APIs Requests/waifu-it.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,17 @@ extension ViewController {
DispatchQueue.global().async { [weak self] in
guard let self = self else { return }

let categories: [String]
let endpointPrefix: String = "https://waifu.it/api/v4/"

if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["angry", "baka", "bite", "blush", "bonk", "bored", "bully", "bye", "chase", "cheer", "cringe", "cry", "dab", "dance", "die", "disgust", "facepalm", "feed", "glomp", "happy", "hi", "highfive", "hold", "hug", "kick", "kill", "kiss", "laugh", "lick", "love", "lurk", "midfing", "nervous", "nom", "nope", "nuzzle", "panic", "pat", "peck", "poke", "pout", "punch", "run", "sad", "shoot", "shrug", "sip", "slap", "sleepy", "smile", "smug", "stab", "stare", "suicide", "tease", "think", "thumbsup", "tickle", "triggered", "wag", "wave", "wink", "yes"]
var categories: [String] = []

if let selectedTags = UserDefaults.standard.array(forKey: "SelectedTagsWaifu.It") as? [String], !selectedTags.isEmpty {
categories = selectedTags
} else {
categories = ["angry", "baka", "bite", "blush", "bonk", "bored", "bye", "chase", "cheer", "cringe", "cry", "cuddle", "dab", "dance", "disgust", "facepalm", "feed", "glomp", "happy", "hi", "highfive", "hold", "hug", "kick", "kiss", "laugh", "lurk", "nervous", "nom", "nope", "nuzzle", "panic", "pat", "peck", "poke", "pout", "run", "sad", "shrug", "sip", "slap", "sleepy", "smile", "smug", "stare", "tease", "think", "thumbsup", "tickle", "wag", "wave", "wink", "yes"]
if UserDefaults.standard.bool(forKey: "explicitContents") {
categories = ["angry", "baka", "bite", "blush", "bonk", "bored", "bully", "bye", "chase", "cheer", "cringe", "cry", "dab", "dance", "die", "disgust", "facepalm", "feed", "glomp", "happy", "hi", "highfive", "hold", "hug", "kick", "kill", "kiss", "laugh", "lick", "love", "lurk", "midfing", "nervous", "nom", "nope", "nuzzle", "panic", "pat", "peck", "poke", "pout", "punch", "run", "sad", "shoot", "shrug", "sip", "slap", "sleepy", "smile", "smug", "stab", "stare", "suicide", "tease", "think", "thumbsup", "tickle", "triggered", "wag", "wave", "wink", "yes"]
} else {
categories = ["angry", "baka", "bite", "blush", "bonk", "bored", "bye", "chase", "cheer", "cringe", "cry", "cuddle", "dab", "dance", "disgust", "facepalm", "feed", "glomp", "happy", "hi", "highfive", "hold", "hug", "kick", "kiss", "laugh", "lurk", "nervous", "nom", "nope", "nuzzle", "panic", "pat", "peck", "poke", "pout", "run", "sad", "shrug", "sip", "slap", "sleepy", "smile", "smug", "stare", "tease", "think", "thumbsup", "tickle", "wag", "wave", "wink", "yes"]
}
}

let randomIndex = Int(arc4random_uniform(UInt32(categories.count)))
Expand All @@ -38,9 +42,7 @@ extension ViewController {
return
}

var request = URLRequest(url: url)

request.setValue(Secrets.waifuItToken, forHTTPHeaderField: "Authorization")
let request = URLRequest(url: url)

self.fetchImage(with: request, startTime: startTime, tag: randomCategory)
}
Expand Down
Loading

0 comments on commit a4ed1b9

Please sign in to comment.