Add func find on Login
This commit is contained in:
@@ -2,10 +2,12 @@ package account
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/fatih/color"
|
"fmt"
|
||||||
"math/rand/v2"
|
"math/rand/v2"
|
||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/fatih/color"
|
||||||
)
|
)
|
||||||
|
|
||||||
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ1234567890-*!?()#$%&")
|
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ1234567890-*!?()#$%&")
|
||||||
@@ -20,7 +22,8 @@ type Account struct {
|
|||||||
|
|
||||||
// метод вывода пароля
|
// метод вывода пароля
|
||||||
func (acc *Account) Output() {
|
func (acc *Account) Output() {
|
||||||
c := color.New(color.FgRed, color.Italic, color.Bold)
|
c := color.New(color.FgRed, color.Bold)
|
||||||
|
fmt.Println()
|
||||||
c.Printf("password: %v\nlogin: %v\nURL: %v\n", acc.Password, acc.Login, acc.Url)
|
c.Printf("password: %v\nlogin: %v\nURL: %v\n", acc.Password, acc.Login, acc.Url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ import (
|
|||||||
|
|
||||||
var menu = map[string]func(*account.VaultWithDb){
|
var menu = map[string]func(*account.VaultWithDb){
|
||||||
"1": createAccount,
|
"1": createAccount,
|
||||||
"2": findAccount,
|
"2": findAccountByUrl,
|
||||||
"3": deleteAccount,
|
"3": findAccountByLogin,
|
||||||
|
"4": deleteAccount,
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -26,9 +27,10 @@ Menu:
|
|||||||
for {
|
for {
|
||||||
variant := PromptData([]string{
|
variant := PromptData([]string{
|
||||||
"1. Создать аккаунт",
|
"1. Создать аккаунт",
|
||||||
"2. Найти аккаунт",
|
"2. Найти аккаунт по URL",
|
||||||
"3. Удалить аккаунт",
|
"3. Найти аккаунт по логину",
|
||||||
"4. Выход",
|
"4. Удалить аккаунт",
|
||||||
|
"5. Выход",
|
||||||
"Выберите вариант",
|
"Выберите вариант",
|
||||||
})
|
})
|
||||||
menuFunc := menu[variant]
|
menuFunc := menu[variant]
|
||||||
@@ -49,16 +51,29 @@ Menu:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func findAccount(vault *account.VaultWithDb) {
|
func findAccountByUrl(vault *account.VaultWithDb) {
|
||||||
url := PromptData([]string{"Введите URL для поиска"})
|
url := PromptData([]string{"Введите URL для поиска"})
|
||||||
// Анонимная функция как параметр
|
// Анонимная функция как параметр
|
||||||
accounts := vault.FindAccounts(url, func(acc account.Account, str string) bool {
|
accounts := vault.FindAccounts(url, func(acc account.Account, str string) bool {
|
||||||
return strings.Contains(acc.Url, str)
|
return strings.Contains(acc.Url, str)
|
||||||
})
|
})
|
||||||
if len(accounts) == 0 {
|
outputResults(&accounts)
|
||||||
|
}
|
||||||
|
|
||||||
|
func findAccountByLogin(vault *account.VaultWithDb) {
|
||||||
|
login := PromptData([]string{"Введите Login для поиска"})
|
||||||
|
// Анонимная функция как параметр
|
||||||
|
accounts := vault.FindAccounts(login, func(acc account.Account, str string) bool {
|
||||||
|
return strings.Contains(acc.Login, str)
|
||||||
|
})
|
||||||
|
outputResults(&accounts)
|
||||||
|
}
|
||||||
|
|
||||||
|
func outputResults(accounts *[]account.Account) {
|
||||||
|
if len(*accounts) == 0 {
|
||||||
color.Red("Аккаунт не найден!")
|
color.Red("Аккаунт не найден!")
|
||||||
}
|
}
|
||||||
for _, account := range accounts {
|
for _, account := range *accounts {
|
||||||
account.Output()
|
account.Output()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user