A little experiment with transpilation of python function code into VKScript
import vk_api
from parser import vkscript, API, parseInt
@vkscript
def inc_status(vk):
x = parseInt(API.status.get()['text'])
x = x + 1
return API.status.set(text=x)
vk_session = vk_api.VkApi('python@vk.com', 'mypassword')
vk_session.auth(token_only=True)
vk = vk_session.get_api()
print(inc_status(vk))inc_status fn has 2 calls to API, but after applying vkscript decorator
it gets converted into VKScript function, so only one execute call being
made when calling it (inc_status(vk))
var x = parseInt(API.status.get()["text"]);
x = x + 1;
return API.status.set({text:x});The end goal is
import vk_api
from parser import vkscript
@vkscript
def inc_status(vk): # first arg is always VkApiMethod
x = int(vk.status.get()['text']) # int gets converted into parseInt
x = x + 1
return vk.status.set(text=x)
vk_session = vk_api.VkApi('python@vk.com', 'mypassword')
vk_session.auth(token_only=True)
vk = vk_session.get_api()
print(inc_status(vk))
print(inc_status.orig(vk)) # would call unmodified function