/** * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty * * @copyright 2016 Huan LI (李卓桓) , and * Wechaty Contributors . * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import { Tag } from './tag' import { Wechaty } from '../wechaty' import { log } from '../config' class Favorite { static get wechaty (): Wechaty { throw new Error('This class can not be used directly. See: https://github.com/wechaty/wechaty/issues/2027') } get wechaty (): Wechaty { throw new Error('This class can not be used directly. See: https://github.com/wechaty/wechaty/issues/2027') } public static list (): Favorite[] { return [] } /** * Get tags for all favorites * * @static * @returns {Promise} * @example * const tags = await wechaty.Favorite.tags() */ public static async tags (): Promise { log.verbose('Favorite', 'static tags() for %s', this) // TODO: // try { // const tagIdList = await this.puppet.tagFavoriteList() // const tagList = tagIdList.map(id => this.wechaty.Tag.load(id)) // return tagList // } catch (e) { // log.error('Favorite', 'static tags() exception: %s', e.message) // return [] // } return [] } /* * @hideconstructor */ constructor () { } public async tags (): Promise { // TODO: implmente this method return [] } public async findAll () { // } } function wechatifyFavorite (wechaty: Wechaty): typeof Favorite { class WechatifiedFavorite extends Favorite { static override get wechaty () { return wechaty } override get wechaty () { return wechaty } } return WechatifiedFavorite } export { Favorite, wechatifyFavorite, }