Elixir v0.2.0 Nostrum.Util

Utility functions

Summary

Functions

Empties all caches

Returns the gateway url for current websocket connections

Attempts to convert a string to an atom

Returns the number of milliseconds since unix epoch

Returns the current date as an ISO formatted string

Returns the number of shards

Converts a map into an atom-keyed map

Since we’re being sacrilegious and converting strings to atoms from the WS, there will be some atoms that we see that aren’t defined in any Discord structs. This method mainly serves as a means to define those atoms once so the user isn’t warned about them in the Nostrum.Util.maybe_to_atom/1 function when they are in fact harmless

Functions

empty_cache()
empty_cache() :: no_return

Empties all caches.

gateway()
gateway() :: String.t

Returns the gateway url for current websocket connections.

If by chance no gateway connection has been made, will fetch the url to use and store it for future use.

maybe_to_atom(token)
maybe_to_atom(atom | String.t) :: atom

Attempts to convert a string to an atom.

If atom does not currently exist, will warn that we’re doing an unsafe conversion.

now()
now() :: integer

Returns the number of milliseconds since unix epoch.

now_iso()
now_iso() :: String.t

Returns the current date as an ISO formatted string.

num_shards()
num_shards() :: integer

Returns the number of shards.

This is not the number of currently active shards, but the number of shards specified in your config.

safe_atom_map(term)
safe_atom_map(map) :: map

Converts a map into an atom-keyed map.

Given a map with variable type keys, returns the same map with all keys as atoms.

This function will attempt to convert keys to an existing atom, and if that fails will default to creating a new atom while displaying a warning. The idea here is that we should be able to see if any results from Discord are giving variable keys. Since we will define all types of objects returned by Discord, the amount of new atoms created SHOULD be 0. 👀

unused_atoms()

Since we’re being sacrilegious and converting strings to atoms from the WS, there will be some atoms that we see that aren’t defined in any Discord structs. This method mainly serves as a means to define those atoms once so the user isn’t warned about them in the Nostrum.Util.maybe_to_atom/1 function when they are in fact harmless.