Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stop_fn в get_all_iter не работает #461

Open
Kaiftsm opened this issue Apr 27, 2022 · 1 comment
Open

stop_fn в get_all_iter не работает #461

Kaiftsm opened this issue Apr 27, 2022 · 1 comment

Comments

@Kaiftsm
Copy link

Kaiftsm commented Apr 27, 2022

Ситуация такая: в get_all_iter прописываю фунцию stop_fn, а она выдаёт ошибку "TypeError: Object of type function is not JSON serializable"

# -*- coding: utf-8 -*-
import vk_api
import json



login, password = '***', '***'
def captcha_handler(captcha):
    key = input("Enter captcha code {0}: ".format(captcha.get_url())).strip()
    return captcha.try_again(key)

vk_session = vk_api.VkApi(login, password, captcha_handler=captcha_handler)
try:
	vk_session.auth(token_only=True)
except vk_api.AuthError as error_msg:
	print(error_msg)
	exit()

vk = vk_session.get_api()


tools = vk_api.VkTools(vk_session)

def checkDate(items):
	return True

def getPostsFromWall(owner_id, farthestDate):
	wall_it = tools.get_all_iter('wall.get', 100, {'owner_id': owner_id, 'stop_fn': checkDate})
	return(wall_it)

wall_it = getPostsFromWall(-***, ***)
for i, item in enumerate(wall_it, 1):
      pass

^ этого достаточно для репродукции ошибки, но в реальности, вот функция checkDate которую я пытаюсь использовать, с передачей ей items от get_all_iter и farthestDate от getPostsFromWall:

def checkDate(items, farthestDate):
 if items[-1]['date'] < farthestDate: #проверка если последний скаченный пост был опубликован раньше заданной даты по unix timestamp 
  return True
 else:
  return False
@SPRAVEDLIVO
Copy link

Вы передаете параметр stop_fn как параметр для вызова API функции, правильно будеть:
wall_it = tools.get_all_iter('wall.get', 100, {'owner_id': owner_id}, stop_fn=checkDate)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants