Skip to content

Releases: michelcrypt4d4mus/fedialgo

v0.69.19

11 Jun 02:52

Choose a tag to compare

  • Add input validation for updateUserWeights()
  • Rename Account and Toot objects' homeserverURL to localServerUrl
  • Make TheAlgorithm.weightPresets into a static variable, make TheAlgorithm.weightedScorers private
  • Set FEDIVERSE_POPULAR_SERVERS staleness to 5 days
  • Convert a bunch of methods on TheAlgorithm, Account, and Toot objects into getters
  • Rename ObjWithTootCount to NamedTootCount, WithCounts to TootCounts
  • Upgrade masto.js to 7.1.0
  • Add "la" to TAG_ONLY_STRINGS
  • Fix handling of failed hashtag timeline and search for hashtag API requests

v0.69.6

09 Jun 01:56

Choose a tag to compare

Behold: there is now incomplete JSDoc documentation for FediAlgo's various functions / objects / types etc.

  • Convert TheAlgorithm.getTimeline() to a getter named timeline, getApiErrorMsgs() to apiErrorMsgs, isLoading() and serverInfo() to getters
  • Convert Toot object's attachmentType, author(), contentTagParagraph(), isDM(), isFollowed(), isPrivate(), realToot(), realURI(), realURL() to getters
  • Convert Account object's homeserver(), homeserverURL(), noteWithAccountInfo() to getters
  • Convert Toot.getScore() to score getter
  • Rename ObjWithTootCount to NamedTootCount, WithCounts to TootCounts
  • Upgrade masto.js to 7.1.0
  • Add "la" to TAG_ONLY_STRINGS
  • Fix handling of failed hashtag timeline and search for hashtag API requests

v0.69.4

08 Jun 21:57

Choose a tag to compare

  • Add FollowersScorer to weight accounts that follow the fedialgo user, add getFollowers() to MastoApi
  • Don't wait for scorers to finish preparing before integrating toots into the timeline
  • Update the cache in the background instead of always dropping/reloading the whole thing when it gets stale
  • Cap initial followed account retrieval before merging toots; beyond that they will be loaded in a background job that sleeps config.apibackgroundLoadSleepBetweenRequestsMS in between requests
  • Set FEDIVERSE_POPULAR_SERVERS staleness to 72 hours
  • Lower timeoutMS to 2,500
  • Fix removing newly muted accounts from timeline
  • Apply the TRENDING multiplier to followed toots
  • Remove TheAlgorithm.filterOptionDataSources() method
  • Much cleaner, decorator based approach to building options for BooleanFilterOptionList

v0.66.0

06 Jun 20:11

Choose a tag to compare

  • Add an AuthorFollowerScorer
  • Add a TOTAL_CHAOS weight preset
  • Add cache summary to getCurrentState()'s storage info
  • Add triggerMoarData() method to TheAlgorithm
  • Flip default sign on scores returned by penalty scorers: they now just return positive values like other scorers, but the default weights sign is flipped to negative
  • Fix bug where DiversityFeedScorer was penalizing new toots with trending tags more than old toots with trending tags
  • Rename Toot object's realAccount() to author()
  • Add a withRetoot() method to Toot
  • BooleanFilterOptionList.maxNumToots is now a variable not a function
  • Add isFollowed to hashtag BooleanFilterOptions, fix bug with user filter displayName for followed accounts w/interactions

v0.64.2

05 Jun 19:38

Choose a tag to compare

  • Add getApiErrorMsgs() method to TheAlgorithm (and add those messages to the getCurrentState() return value)
  • Add maxCacheRecords option to API endpoints config, if timeline cache is full at startup truncate it down to config.toots.truncateFullTimelineToLength records
  • Refactor decoration of filter options into various BooleanFilterOptionList subclasses
  • Change type of UserData.favouriteAccounts and UserData.languagesPostedIn to BooleanFilterOptionList
  • Increase staleness for followed accounts and tags to 12 hours
  • Call setFeedInApp() with empty list as soon as reset() is called, completely reset scorers when reset() is called
  • Suppress foreign script and muted keyword trending tags completely
  • Remove muted/blocked accounts from Toot.getConversation() results
  • On API error, check whether merge is supported before checking whether cache should be discarded in favor of new rows
  • Fix edge case with error handling during MastoApi.reset() where WaitTime object is missing
  • Use Promise.allSettled() to rescue partial results from API calls
  • Add bsd.network to noMauServers list
  • Add "mastodon" to the list of tags that can only match as tag names

v0.60.3

03 Jun 19:49

Choose a tag to compare

  • Rename BooleanFilter.validValues() to selectedOptions, isThisSelectionEnabled() to isOptionEnabled()
  • Add a maxSecondsPerPage to the API config that will halt polling if things are going slow
  • Drop configured initialMaxRecords for favourited toots to half of the other configuration because it seems to be the bottleneck
  • BooleanFilterOption objects now contain more information than just the number of toots in the current timeline they match (in particular they now contain enough information to drive the color gradients in the demo app - e.g. number of user participations/favourites/etc for hashtags)
  • Add filterOptionDataSources() method to TheAlgorithm
  • Add UserData.favouriteAccounts property
  • Repair broken audio attachments like we do with images and videos
  • Refactor an abstract ObjWithCountList class from TagList class so we can hold account info
  • Stop exporting isDebugMode (it's a static property now)
  • Add FEDIALGO_DEEP_DEBUG env var and corresponding Logger.deep() method
  • UserData's Tag properties are now TagList objects; TagList has a few new methods to make it easier to work with
  • Add config.favouritedTags.maxParticipations param
  • Fully separate TagTootsCacheKey enum elements from CacheKey enum, export TagTootsCacheKey

v0.56.3

01 Jun 17:51

Choose a tag to compare

  • Dramatic performance improvements (everything is much faster)
  • Remove japanese/korean/cyrillic etc. hashtags from trending list unless that's the user's current language
  • Fix bug where scorers were not resetting their state when reset() was called and all other data was reset
  • Uniquify Notification objects from the API against the cache as they arrive to avoid the build up of dupes
  • serverInfo() only returns the v2 API data structure for a server configuration. If the v1 version exists it will be logged and thrown as an error.
  • Add entriesSortedByValue(), optionsSortedByValue(), optionsSortedByName(), optionsAsTagList(), isThisSelectionEnabled(), and numOptions()methods toBooleanFilter`
  • QUICK_MODE isn't always turned on when NODE_ENV=development and/the FEDIALGO_DEBUG env var is turned on; has to be enabled separately now
  • Fix bug when filtering for hashtags w/french/german/etc diacritic chars
  • Fix bug with moar data poller favourited toots puller that caused it to think it was finished after pulling only the minimum number of favourited toots
  • Add replyMentions() method to Toot objects
  • Add filters to getCurrentState() return value
  • Lower staleness duration for server side filters to four hours
  • Adjust DISCUSSIONS weight preset
  • Standardized Logger class
  • New TagList class

v0.53.1

27 May 23:20

Choose a tag to compare

  • Add toots based on hashtags the user favourites often but doesn't participate in much or follow to the feed sources
  • Significant performance improvements to Toot.completeProperties() from precompiled tag regexes
  • Introduce TagList and TootsForTagsList classes to manage participated/favourited/trending tags
  • Don't remove user's own toots from the threaded view
  • Add serverInfo() to TheAlgorithm; add serverInfo() response and trending data to getCurrentState()
  • Add homeInstanceInfo() method to Account

v0.50.0

25 May 18:47

Choose a tag to compare

  • Add getConversation() method to Toot class
  • Remove blocked/muted keywords from the visible list of trending tags
  • Add complete flag argument to reset() method

v0.48.9

25 May 01:38

Choose a tag to compare

  • Add a FollowedAccountsScorer to offset the slowly creeping dominance of participated and followed tags in the feed
  • Fix bug where cached home timeline toots were being sorted backwards before being truncated
  • Suppress warnings when ChaosScorer calls getIndividualScore()
  • Make numeric filters apply to the realToot() not the retoot, don't use scoreInfo to get values for numeric filters
  • Change format of TootScore object, remove alternateScoreInfo() and formatScore() methods (functionality moved to demo app)
  • Rename some config options
  • Add #government to the list of "too generic to trend" tags