code: def convert_shortcut_buttons(items):
          
          if items is not None and isinstance(items, list):
              result = []
              for item in items:
                  if isinstance(item, BaseButton):
                      result.append(item)
                  elif isinstance(item, dict):
                      if item.get('type') in ['web_url', 'postback', 'phone_number', 'element_share']:
                          type = item.get('type')
                          title = item.get('title')
                          value = item.get('value', item.get('url', item.get('payload')))
  
                          if type == 'web_url':
                              result.append(ButtonWeb(title=title, url=value))
                          elif type == 'postback':
                              result.append(ButtonPostBack(title=title, payload=value))
                          elif type == 'phone_number':
                              result.append(ButtonPhoneNumber(title=title, payload=value))
                          elif type == 'element_share':
                              result.append(ButtonShare())
  
                      else:
                          raise ValueError('Invalid button type')
                  else:
                      raise ValueError('Invalid buttons variables')
              return result
          else:
              return items
docs: support shortcut buttons [{'type':'web_url', 'title':'open web url', 'value':'https://~~'}]