Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
SevereCloud committed Sep 4, 2020
2 parents d98866d + f112cb3 commit 4be2aa0
Show file tree
Hide file tree
Showing 161 changed files with 5,237 additions and 3,757 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: golangci-lint
uses: golangci/golangci-lint-action@v1
uses: golangci/golangci-lint-action@v2
with:
# Required: the version of golangci-lint is required and must be
# specified without patch version: we always use the latest
# patch version.
version: v1.27
version: v1.30

# Optional: golangci-lint command line arguments.
# args: ./the-only-dir-to-analyze/...
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
test:
strategy:
matrix:
go-version: [1.11.x, 1.x]
go-version: [1.13.x, 1.x]
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
Expand Down
10 changes: 5 additions & 5 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@ linters:
- godot
- asciicheck
- nolintlint
- gofumpt
- goerr113

# - testpackage # TODO: Fix testpackage
# - nestif # TODO: Fix nestif
# - goerr113 # TODO: Enable v2

# don't enable:
# - depguard
Expand All @@ -53,6 +54,9 @@ linters:
# - rowserrcheck
# - scopelint
# - gomodguard
# - exhaustive
# - nlreturn
# - gci

issues:
exclude-rules:
Expand All @@ -73,7 +77,3 @@ issues:
text: "ST1003:.*(Ts|ts).*TS"

exclude-use-default: false


service:
golangci-lint-version: 1.24.x
7 changes: 5 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Требования:

- [Go 1.11+](https://golang.org/doc/install)
- [Go 1.13+](https://golang.org/doc/install)
- [golangci-lint](https://github.com/golangci/golangci-lint)
- [global .gitignore](https://help.github.com/en/articles/ignoring-files#create-a-global-gitignore)

Expand Down Expand Up @@ -84,4 +84,7 @@ git push origin <name_of_your_new_branch>
```

Затем откройте [pull request](https://github.com/SevereCloud/vksdk/pulls)
с `master` веткой
с веткой:

- `master` если это багфикс
- `dev` если это новая фича
98 changes: 49 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,57 +8,57 @@
[![release](https://img.shields.io/github/v/tag/SevereCloud/vksdk?label=release)](https://github.com/SevereCloud/vksdk/releases)
[![license](https://img.shields.io/github/license/SevereCloud/vksdk.svg?maxAge=2592000)](https://github.com/SevereCloud/vksdk/blob/master/LICENSE)

**VK SDK for Golang** готовая реализация основных функций VK API для языка Go.

[English documentation](https://pkg.go.dev/github.com/SevereCloud/vksdk)

## Возможности

- [API](https://github.com/SevereCloud/vksdk/tree/master/api#api)
- Возвращает готовые структуры
- Реализовано 400+ методов
- Возможность изменять обработчик запросов
- Возможность изменять HTTP клиент
- Ограничитель запросов
- Загрузка файлов
- [Callback API](https://github.com/SevereCloud/vksdk/tree/master/callback#callback-api)
- Поддерживает все события
- Возвращает готовые структуры
- [Bots Long Poll API](https://github.com/SevereCloud/vksdk/tree/master/longpoll-bot#bots-long-poll-api)
- Поддерживает все события
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
- [User Long Poll API](https://github.com/SevereCloud/vksdk/tree/master/longpoll-user#user-long-poll-api)
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
**VK SDK for Golang** ready implementation of the main VK API functions for Go.

[Russian documentation](https://github.com/SevereCloud/vksdk/wiki)

## Features

- [API](https://pkg.go.dev/github.com/SevereCloud/vksdk/api)
- 400+ methods
- Ability to change the request handler
- Ability to modify HTTP client
- Request Limiter
- Token pool
- [Callback API](https://pkg.go.dev/github.com/SevereCloud/vksdk/callback)
- Tracking tool for users activity in your VK communities
- Supports all events
- Auto setting callback
- [Bots Long Poll API](https://pkg.go.dev/github.com/SevereCloud/vksdk/longpoll-bot)
- Allows you to work with community events in real time
- Supports all events
- Ability to modify HTTP client
- [User Long Poll API](https://pkg.go.dev/github.com/SevereCloud/vksdk/longpoll-user)
- Allows you to work with user events in real time
- Ability to modify HTTP client
- [Streaming API](https://pkg.go.dev/github.com/SevereCloud/vksdk/streaming)
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
- [FOAF](https://github.com/SevereCloud/vksdk/tree/master/foaf#foaf)
- Работает с пользователями и группами
- Возвращает готовые структуры
- [VK Mini Apps](https://github.com/SevereCloud/vksdk/tree/master/vkapps#vk-mini-apps)
- Проверка параметров запуска
- Промежуточный http обработчик
- Receiving public data from VK by specified keywords
- Ability to modify HTTP client
- [FOAF](https://pkg.go.dev/github.com/SevereCloud/vksdk/foaf)
- Machine-readable ontology describing persons
- Works with users and groups
- The only place to get page creation date
- [VK Mini Apps](https://pkg.go.dev/github.com/SevereCloud/vksdk/vkapps)
- Checking launch parameters
- Intermediate http handler
- [Payments API](https://pkg.go.dev/github.com/SevereCloud/vksdk/payments)
- Обрабатывает уведомления о платежах
- [Скиллы Маруси](https://pkg.go.dev/github.com/SevereCloud/vksdk/marusia)
- Готовые структуры и методы
- Обработка запросов от Маруси
- Processes payment notifications
- [Marusia Skills](https://pkg.go.dev/github.com/SevereCloud/vksdk/marusia)
- For creating Marusia Skills

## Установка
## Install

```shell
```bash
# go mod init mymodulename
go get github.com/SevereCloud/vksdk@latest
```

## Примеры использования
## Use by

- [Joe](https://github.com/go-joe/joe) адаптер: <https://github.com/tdakkota/joe-vk-adapter>
- [Joe](https://github.com/go-joe/joe) adapter: <https://github.com/tdakkota/joe-vk-adapter>
- [Logrus](https://github.com/sirupsen/logrus) hook: <https://github.com/SevereCloud/vkrus>

### Пример
### Example

```go
package main
Expand All @@ -73,22 +73,22 @@ import (
)

func main() {
token := "<TOKEN>" // рекомендуется использовать os.Getenv("TOKEN")
token := "<TOKEN>" // use os.Getenv("TOKEN")
vk := api.NewVK(token)

// Получаем информацию о группе
group, err := vk.GroupsGetByID(api.Params{})
// get information about the group
group, err := vk.GroupsGetByID(nil)
if err != nil {
log.Fatal(err)
}

// Инициализируем longpoll
lp, err := longpoll.NewLongpoll(vk, group[0].ID)
// Initializing Long Poll
lp, err := longpoll.NewLongPoll(vk, group[0].ID)
if err != nil {
log.Fatal(err)
}

// Событие нового сообщения
// New message event
lp.MessageNew(func(obj object.MessageNewObject, groupID int) {
log.Printf("%d: %s", obj.Message.PeerID, obj.Message.Text)

Expand All @@ -105,14 +105,14 @@ func main() {
}
})

// Запускаем Bots Longpoll
log.Println("Start longpoll")
// Run Bots Long Poll
log.Println("Start Long Poll")
if err := lp.Run(); err != nil {
log.Fatal(err)
}
}
```

## Лицензия
## LICENSE

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FSevereCloud%2Fvksdk.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FSevereCloud%2Fvksdk?ref=badge_large)
52 changes: 28 additions & 24 deletions api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![PkgGoDev](https://pkg.go.dev/badge/github.com/SevereCloud/vksdk/api)](https://pkg.go.dev/github.com/SevereCloud/vksdk/api)
[![VK](https://img.shields.io/badge/developers-%234a76a8.svg?logo=VK&logoColor=white)](https://vk.com/dev/first_guide)

Данная библиотека поддерживает версию API **5.103**.
Данная библиотека поддерживает версию API **5.122**.

## Запросы

Expand Down Expand Up @@ -52,34 +52,34 @@ res, err = api.MessageSend(b.Params)

### Обработка ошибок

[![PkgGoDev](https://pkg.go.dev/badge/github.com/SevereCloud/vksdk/api/errors)](https://pkg.go.dev/github.com/SevereCloud/vksdk/api/errors)
[![VK](https://img.shields.io/badge/developers-%234a76a8.svg?logo=VK&logoColor=white)](https://vk.com/dev/errors)

Пример обработки ошибки
Обработка ошибок полностью поддерживает методы
[go 1.13](https://blog.golang.org/go1.13-errors)

```go
// import "github.com/SevereCloud/vksdk/api/errors"

switch errors.GetType(err) {
case errors.NoType:
log.Print("Ошибка не связанная с работой самого API")
case errors.Captcha:
log.Print("Требуется ввод кода с картинки (Captcha)")
case 1:
log.Print("Код ошибки 1")
default:
log.Print("Другая ошибка")
if errors.Is(err, api.ErrAuth) {
log.Println("User authorization failed")
}
```

Получение ошибки, [отправленной ВК](https://pkg.go.dev/github.com/SevereCloud/vksdk/object#Error)

```go
// import "github.com/SevereCloud/vksdk/api/errors"

vkErr := errors.GetErrorContext(err)
var e *api.Error
if errors.As(err, &e) {
switch e.Code {
case api.ErrCaptcha:
log.Println("Требуется ввод кода с картинки (Captcha)")
log.Printf("sid %s img %s", e.CaptchaSID, e.CaptchaImg)
case 1:
log.Println("Код ошибки 1")
default:
log.Printf("Ошибка %d %s", e.Code, e.Text)
}
}
```

Для Execute существует отдельная ошибка `ExecuteErrors`

### Запрос любого метода

Пример запроса [users.get](https://vk.com/dev/users.get)
Expand All @@ -94,7 +94,7 @@ params := api.Params{
}

// Делаем запрос
err = vk.RequestUnmarshal("users.get", params, &response)
err = vk.RequestUnmarshal("users.get", &response, params)
if err != nil {
log.Fatal(err)
}
Expand All @@ -110,8 +110,6 @@ log.Print(response)
Универсальный метод, который позволяет запускать последовательность других
методов, сохраняя и фильтруя промежуточные результаты.

TODO: описать ошибки

```go
var response struct {
Text string `json:"text"`
Expand All @@ -131,7 +129,7 @@ log.Print(response.Text)
В качестве параметров принимать название метода и параметры.

```go
vk.Handler = func(method string, params api.Params) (api.Response, error) {
vk.Handler = func(method string, params ...api.Params) (api.Response, error) {
// ...
}
```
Expand Down Expand Up @@ -174,12 +172,18 @@ vk.Handler = func(method string, params api.Params) (api.Response, error) {
Пример прокси

```go

dialer, _ := proxy.SOCKS5("tcp", "127.0.0.1:9050", nil, proxy.Direct)
httpTransport := &http.Transport{
Dial: dialer.Dial,
}
httpTransport.Dial = dialer.Dial
vk.Client.Transport = httpTransport

client := &http.Client{
Transport: httpTransport,
}

vk.Client = client
```

### Ошибка с Captcha
Expand Down
Loading

0 comments on commit 4be2aa0

Please sign in to comment.