0.20.0-beta.43 • Published 2 years ago

@dawalters1/wolf.js v0.20.0-beta.43

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

0.20.0 - ⚠️ CONTAINS BREAKING CHANGES ⚠️

❗❗ Breaking Changes ❗❗

  • Events are now handled with manual eventStrings
api.on.eventName((... args)=>{}) -> api.on('eventName', (... args)=>{})

Deprecations (OLD -> NEW)

api.tip() -> api.tipping()
api.deleteCharms() -> api.charm().remove()
api.setSelectedCharms() -> api.charm().set()
api.getCrediteBalance() -> api.store().getBalance()
api.getConversationList() -> api.messaging().getConversationList();
api.contact().delete() -> api.contact().remove()
api.event().createEvent() -> api.event(). remove()
api.event().editEvent() -> api.event().edit()
api.event().updateEventThumbnail() -> api.event().updateThumbnail()
api.event().deleteEvent() -> api.event().remove()
api.event().getGroupEvents() -> api.event().getGroupEventList()
api.event().getEventSubscriptions() -> api.event().getSubscriptionList()
api.event().subscribeToEvent() -> api.event().subscribe()
api.event().unsubscribeFromEvent() -> api.event().unsubscribe()
api.group().getHistory() -> api.group().getChatHistory()
api.subscriber().getHistory() -> api.subscriber().getChatHistory()
api.utility().group().member().checkPermissions() -> api.utility().group().member().hasCapability()
api.stage().getStages() -> api.stage().getStageList()
api.stage().getSettings() -> api.stage().getGroupSettings()
api.stage().getSlots() -> api.stage().getGroupSlots()
api.stage().removeSubscriberFromSlot() -> api.stage().kickSlot()
api.stage().play() -> api.stage().broadcast()
api.stage().isPlaying() -> api.stage().isBroadcasting();
api.messaging().subscribeToNextMessage() -> api.messaging().subscribe().nextMessage()
api.messaging().subscribeToNextGroupMessage() -> api.messaging().subscribe().nextGroupMessage()
api.messaging().subscribeToNextPrivateMessage() -> api.messaging().subscribe().nextPrivateMessage()
api.messaging().subscribeToNextGroupSubscriberMessage() -> api.messaging().subscribe().nextGroupSubscriberMessage()

Whats New?

  • Full typings/intellisense support
  • Bug fixes
  • Contacts, Events, Groups, Group Members, Subscribers & Messages now contain methods
  • Constants are now integrated into the API... Constants Package will be deprecated upon this release
    • Constants names now start with a capital letter (EX: messageType is now MessageType)
  • 10.14 Raise Hands Support
  • Added: api.group().getRecommendedList() - Get recommended groups

Introduction

WOLF.js is a community maintained javascript library used to create Unofficial Bots

Required

Optional Packages

  • ioredis npm i ioredis
    • Requires a local or remote redis server
      • Windows - Github maintained port, because its no longer supported on windows
      • Linux

Getting Started

Config - './config/default.yaml'

keyword: keyword # single word only
app:
  defaultLanguage: en
  developerId: your_user_id # your user ID
  commandSettings:
    ignoreOfficialBots: true
    ignoreUnofficialBots: false
  networkSettings:
    retryMode: 1 # retry requests on 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout & 408 Timeout
    retryAttempts: 1
    

Phrases - './phrases/en.json'

[
    {
        "name": "{keyword}_command_{keyword}",
        "comment":"{keyword} must match the keyword specified in config yaml",
        "value":"!{keyword}"
    },

    {
        "name": "{keyword}_command_help",
        "value":"help"
    },
    {
        "name": "{keyword}_help_message",
        "value":"Welcome to the {botname} bot\n\n!{keyword} help - To display this message\n!{keyword} me - Display basic information about your profile"
    },

    {
        "name": "{keyword}_command_me",
        "value":"me"
    },
    {
        "name": "{keyword}_subscriber_message",
        "value":"Nickname: {nickname} (ID: {id})\nStatus Message: {status}\nLevel: {level} ({percentage}% completed)"
    }
]

index.js

const WOLF = require('@dawalters1/wolf.js');
const api = new WOLF.WOLFBot();

const me = require('./src/me')

const keyword = api.options.keyword;

api.commandHandler().register([
  new WOLF.Command(`${keyword}_command_${keyword}`, { both: async (command) => api.messaging().sendMessage(command, api.phrase().getByLanguageAndName(command.language, `${keyword}_help_message`)) },
  [
      new WOLF.Command(`${keyword}_command_help`, { both: (command) => api.messaging().sendMessage(command, api.phrase().getByLanguageAndName(command.language, `${keyword}_help_message`)) }),
      new WOLF.Command(`${keyword}_command_me`, { both: (command) => me(api, command) })
  ])
]);

api.on('groupMessage', async(message)=>{
  if(message.body === '!ping'){
    return await api.messaging().sendGroupMessage(message.targetGroupId, 'Pong!');
  }
});

api.on('privateMessage', async(message)=>{
  if(message.isCommand){
    return Promise.resolve();
  }

  const { language } = await api.subscriber().getById(message.sourceSubscriberId);

  return await api.messaging().sendPrivateMessage(message.sourceSubscriberId, api.phrase().getByLanguageAndName(language, `${api.options.keyword}_help_message`));
});

api.on('ready', ()=>{
  console.log('Ready');
});

api.login('email', 'password');
Command - './src/me/index.js'

/**
 * Required for intellisense to work with api & command
 * @param {import('@dawalters1/wolf.js').WOLFBot} api
 * @param {import('@dawalters1/wolf.js').CommandObject} command
 */
module.exports = async (api, command) => {

  const subscriber = await api.subscriber().getById(command.sourceSubscriberId);

  return await api.messaging().sendMessage(
    command,
    api.utility().string().replace(api.phrase().getByLanguageAndName(command.language, `${api.options.keyword}_subscriber_message`), 
    {
      nickname: subscriber.nickname,
      id: subscriber.id,
      status: subscriber.status,
      level: subscriber.reputation.split('.')[0],
      percentage: subscriber.reputation.split('.')[1], // you may have to pad left with 0s
  }));
};

Approval

Bots MUST be approved by WOLF staff in bot approval or bot approval.ar

Known Issues

  • Nothing at all ᴺᵒᵗʰᶦⁿᵍ ᵃᵗ ᵃˡˡ

Lacking Features

  • Stage Volume Control - Wont Do

Contact

0.20.0-beta.22

2 years ago

0.20.0-beta.21

2 years ago

0.20.0-beta.20

2 years ago

0.20.0-beta.26

2 years ago

0.17.2

2 years ago

0.20.0-beta.25

2 years ago

0.17.3

2 years ago

0.20.0-beta.24

2 years ago

0.17.4

2 years ago

0.20.0-beta.23

2 years ago

0.20.0-beta.29

2 years ago

0.20.0-beta.28

2 years ago

0.20.0-beta.27

2 years ago

0.17.0

2 years ago

0.17.1

2 years ago

0.20.0-beta.11

2 years ago

0.20.0-beta.10

2 years ago

0.20.0-beta.15

2 years ago

0.20.0-beta.14

2 years ago

0.20.0-beta.13

2 years ago

0.20.0-beta.12

2 years ago

0.20.0-beta.19

2 years ago

0.20.0-beta.18

2 years ago

0.20.0-beta.17

2 years ago

0.20.0-beta.16

2 years ago

0.20.0-beta.40

2 years ago

0.20.0-beta.43

2 years ago

0.20.0-beta.42

2 years ago

0.20.0-beta.41

2 years ago

0.20.0-beta.33

2 years ago

0.20.0-beta.32

2 years ago

0.20.0-beta.31

2 years ago

0.20.0-beta.30

2 years ago

0.20.0-beta.37

2 years ago

0.20.0-beta.36

2 years ago

0.20.0-beta.35

2 years ago

0.20.0-beta.34

2 years ago

0.20.0-beta.39

2 years ago

0.20.0-beta.38

2 years ago

0.20.0-beta.4

2 years ago

0.20.0-beta.3

2 years ago

0.20.0-beta.6

2 years ago

0.20.0-beta.5

2 years ago

0.20.0-beta.2

2 years ago

0.20.0-beta.1

2 years ago

0.20.0-beta.8

2 years ago

0.20.0-beta.7

2 years ago

0.20.0-beta.9

2 years ago

0.17.0-beta.1

2 years ago

0.17.0-beta.2

2 years ago

0.17.0-beta.3

2 years ago

0.17.0-beta.4

2 years ago

0.17.0-beta.5

2 years ago

0.17.0-beta.6

2 years ago

0.17.0-ptb.9

2 years ago

0.17.0-ptb.7

2 years ago

0.17.0-ptb.8

2 years ago

0.17.0-ptb.10

2 years ago

0.17.0-typings.4

2 years ago

0.17.0-typings.3

2 years ago

0.17.0-typings.2

2 years ago

0.17.0-typings.1

2 years ago

0.16.3

2 years ago

0.16.4

2 years ago

0.16.5

2 years ago

0.16.2

3 years ago

0.17.0-ptb.1

2 years ago

0.17.0-ptb.2

2 years ago

0.17.0-ptb.5

2 years ago

0.17.0-ptb.6

2 years ago

0.17.0-ptb.3

2 years ago

0.17.0-ptb.4

2 years ago

0.17.0-beta.7

2 years ago

0.16.1

3 years ago

0.15.0

3 years ago

0.14.0

3 years ago

0.14.1

3 years ago

0.16.0

3 years ago

0.14.2

3 years ago

0.13.0

3 years ago

0.13.1

3 years ago

0.13.2

3 years ago

0.13.3

3 years ago

0.12.0

3 years ago

0.11.3

3 years ago

0.11.2

3 years ago

0.11.0

3 years ago

0.11.1

3 years ago

0.10.6

3 years ago

0.10.5

3 years ago

0.10.4

3 years ago

0.10.3

3 years ago

0.10.2

3 years ago

0.9.3

3 years ago

0.10.1

3 years ago

0.10.0

3 years ago

0.9.2

3 years ago

0.9.1

3 years ago

0.9.0

3 years ago

0.7.2

3 years ago

0.8.0

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.5.0

3 years ago

0.4.8

3 years ago

0.4.7

3 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.4.2

3 years ago

0.3.10

3 years ago

0.3.9

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago