func (v Newsfeed) Unsubscribe(params NewsfeedUnsubscribeParams) (bool, error) {
	r, err := v.API.Request("newsfeed.unsubscribe", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
Unsubscribe Unsubscribes the current user from specified newsfeeds.
package vkapi
import (
	"encoding/json"
	"strconv"
	"github.com/stek29/vk"
)
type Newsfeed struct {
	API vk.API
}
type NewsfeedGetParams struct {
	Filters CSVStringSlice `url:"filters,omitempty"`
	ReturnBanned bool `url:"return_banned,omitempty"`
	StartTime int `url:"start_time,omitempty"`
	EndTime int `url:"end_time,omitempty"`
	MaxPhotos int `url:"max_photos,omitempty"`
	SourceIDs CSVStringSlice `url:"source_ids,omitempty"`
	StartFrom string `url:"start_from,omitempty"`
	Count int `url:"count,omitempty"`
	Fields  CSVStringSlice `url:"fields,omitempty"`
	Section string         `url:"section,omitempty"`
}
type NewsfeedGetResponse struct {
	Items    []vk.NewsfeedItem `json:"items,omitempty"`
	Profiles []vk.User         `json:"profiles,omitempty"`
	Groups   []vk.Group        `json:"groups,omitempty"`
}
func (v Newsfeed) Get(params NewsfeedGetParams) (*NewsfeedGetResponse, error) {
	r, err := v.API.Request("newsfeed.get", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type NewsfeedGetRecommendedParams struct {
	StartTime int `url:"start_time,omitempty"`
	EndTime int `url:"end_time,omitempty"`
	MaxPhotos int `url:"max_photos,omitempty"`
	StartFrom string `url:"start_from,omitempty"`
	Count int `url:"count,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
}
type NewsfeedGetRecommendedResponse struct {
	Items    []vk.NewsfeedItem `json:"items,omitempty"`
	Profiles []vk.User         `json:"profiles,omitempty"`
	Groups   []vk.Group        `json:"groups,omitempty"`
	NewOffset string `json:"new_offset,omitempty"`
	NewFrom string `json:"new_from,omitempty"`
}
func (v Newsfeed) GetRecommended(params NewsfeedGetRecommendedParams) (*NewsfeedGetRecommendedResponse, error) {
	r, err := v.API.Request("newsfeed.getRecommended", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetRecommendedResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type NewsfeedGetCommentsParams struct {
	Count int `url:"count,omitempty"`
	Filters CSVStringSlice `url:"filters,omitempty"`
	Reposts string `url:"reposts,omitempty"`
	StartTime int `url:"start_time,omitempty"`
	EndTime           int `url:"end_time,omitempty"`
	LastCommentsCount int `url:"last_comments_count,omitempty"`
	StartFrom string `url:"start_from,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
}
type NewsfeedGetCommentsResponse struct {
	Items    []vk.NewsfeedItem `json:"items,omitempty"`
	Profiles []vk.User         `json:"profiles,omitempty"`
	Groups   []vk.Group        `json:"groups,omitempty"`
	NextFrom string `json:"next_from,omitempty"`
}
func (v Newsfeed) GetComments(params NewsfeedGetCommentsParams) (*NewsfeedGetCommentsResponse, error) {
	r, err := v.API.Request("newsfeed.getComments", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetCommentsResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type NewsfeedGetMentionsParams struct {
	OwnerID int `url:"owner_id,omitempty"`
	StartTime int `url:"start_time,omitempty"`
	EndTime int `url:"end_time,omitempty"`
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
}
type NewsfeedGetMentionsResponse struct {
	Count int       `json:"count,omitempty"`
	Items []vk.Post `json:"items,omitempty"`
}
func (v Newsfeed) GetMentions(params NewsfeedGetMentionsParams) (*NewsfeedGetMentionsResponse, error) {
	r, err := v.API.Request("newsfeed.getMentions", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetMentionsResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type NewsfeedGetBannedParams struct {
	Extended bool `url:"extended,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
	NameCase string `url:"name_case,omitempty"`
}
type NewsfeedGetBannedResponse interface {
	isNewsfeedGetBanned()
}
type NewsfeedGetBannedResponseNormal struct {
	Groups []int `json:"groups,omitempty"`
	Members []int `json:"members,omitempty"`
}
func (NewsfeedGetBannedResponseNormal) isNewsfeedGetBanned() {}
type NewsfeedGetBannedResponseExtended struct {
	Groups  []vk.User  `json:"groups,omitempty"`
	Members []vk.Group `json:"members,omitempty"`
}
func (NewsfeedGetBannedResponseExtended) isNewsfeedGetBanned() {}
func (v Newsfeed) GetBanned(params NewsfeedGetBannedParams) (NewsfeedGetBannedResponse, error) {
	r, err := v.API.Request("newsfeed.getBanned", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetBannedResponse
	if params.Extended {
		var tmp NewsfeedGetBannedResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp NewsfeedGetBannedResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type NewsfeedAddBanParams struct {
	UserIDs  CSVIntSlice `url:"user_ids,omitempty"`
	GroupIDs CSVIntSlice `url:"group_ids,omitempty"`
}
func (v Newsfeed) AddBan(params NewsfeedAddBanParams) (bool, error) {
	r, err := v.API.Request("newsfeed.addBan", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type NewsfeedDeleteBanParams struct {
	UserIDs  CSVIntSlice `url:"user_ids,omitempty"`
	GroupIDs CSVIntSlice `url:"group_ids,omitempty"`
}
func (v Newsfeed) DeleteBan(params NewsfeedDeleteBanParams) (bool, error) {
	r, err := v.API.Request("newsfeed.deleteBan", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type NewsfeedIgnoreItemParams struct {
	Type string `url:"type"`
	OwnerID int `url:"owner_id"`
	ItemID int `url:"item_id"`
}
func (v Newsfeed) IgnoreItem(params NewsfeedIgnoreItemParams) (bool, error) {
	r, err := v.API.Request("newsfeed.ignoreItem", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type NewsfeedUnignoreItemParams struct {
	Type string `url:"type"`
	OwnerID int `url:"owner_id"`
	ItemID int `url:"item_id"`
}
func (v Newsfeed) UnignoreItem(params NewsfeedUnignoreItemParams) (bool, error) {
	r, err := v.API.Request("newsfeed.unignoreItem", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type NewsfeedSearchParams struct {
	Q string `url:"q,omitempty"`
	Extended bool `url:"extended,omitempty"`
	Count int `url:"count,omitempty"`
	Latitude float32 `url:"latitude,omitempty"`
	Longitude float32 `url:"longitude,omitempty"`
	StartTime int `url:"start_time,omitempty"`
	EndTime   int    `url:"end_time,omitempty"`
	StartFrom string `url:"start_from,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
}
type NewsfeedSearchResponse interface {
	isNewsfeedSearch()
}
type NewsfeedSearchResponseNormal struct {
	Items            []vk.Post `json:"items,omitempty"`
	SuggestedQueries []string  `json:"suggested_queries,omitempty"`
}
func (NewsfeedSearchResponseNormal) isNewsfeedSearch() {}
type NewsfeedSearchResponseExtended struct {
	Items    []vk.Post  `json:"items,omitempty"`
	Profiles []vk.User  `json:"profiles,omitempty"`
	Groups   []vk.Group `json:"groups,omitempty"`
}
func (NewsfeedSearchResponseExtended) isNewsfeedSearch() {}
func (v Newsfeed) Search(params NewsfeedSearchParams) (NewsfeedSearchResponse, error) {
	r, err := v.API.Request("newsfeed.search", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedSearchResponse
	if params.Extended {
		var tmp NewsfeedSearchResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp NewsfeedSearchResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type NewsfeedGetListsParams struct {
	ListIDs CSVIntSlice `url:"list_ids,omitempty"`
	Extended bool `url:"extended,omitempty"`
}
type NewsfeedGetListsResponse interface {
	isNewsfeedGetLists()
}
type NewsfeedGetListsResponseNormal struct {
	Count int `json:"count,omitempty"`
	Items []genTODOType  `json:"items,omitempty"`
}
func (NewsfeedGetListsResponseNormal) isNewsfeedGetLists() {}
type NewsfeedGetListsResponseExtended struct {
	Count int `json:"count,omitempty"`
	Items []genTODOType  `json:"items,omitempty"`
}
func (NewsfeedGetListsResponseExtended) isNewsfeedGetLists() {}
func (v Newsfeed) GetLists(params NewsfeedGetListsParams) (NewsfeedGetListsResponse, error) {
	r, err := v.API.Request("newsfeed.getLists", params)
	if err != nil {
		return nil, err
	}
	var resp NewsfeedGetListsResponse
	if params.Extended {
		var tmp NewsfeedGetListsResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp NewsfeedGetListsResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type NewsfeedSaveListParams struct {
	ListID int `url:"list_id,omitempty"`
	Title string `url:"title"`
	SourceIDs CSVIntSlice `url:"source_ids,omitempty"`
	NoReposts bool `url:"no_reposts,omitempty"`
}
type NewsfeedSaveListResponse int
func (v Newsfeed) SaveList(params NewsfeedSaveListParams) (NewsfeedSaveListResponse, error) {
	r, err := v.API.Request("newsfeed.saveList", params)
	if err != nil {
		return 0, err
	}
	var resp NewsfeedSaveListResponse
	var cnv int
	cnv, err = strconv.Atoi(string(r))
	resp = NewsfeedSaveListResponse(cnv)
	if err != nil {
		return 0, err
	}
	return resp, nil
}
type NewsfeedDeleteListParams struct {
	ListID int `url:"list_id"`
}
func (v Newsfeed) DeleteList(params NewsfeedDeleteListParams) (bool, error) {
	r, err := v.API.Request("newsfeed.deleteList", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type NewsfeedUnsubscribeParams struct {
	Type string `url:"type"`
	OwnerID int `url:"owner_id,omitempty"`
	ItemID int `url:"item_id"`
}