1. 13 Nov, 2016 2 commits
    • rswindell's avatar
      MsgBase.get_all_msg_headers() now returns the vote totals for each message · e4df751e
      rswindell authored
      (new header properties: upvotes and downvotes), regardless of the
      "include_votes" argument value (default: false).
      get_all_msg_headers() reads the entire index already, so there's really no
      performance penalty unless there are actual votes (and even then, very low).
      The MsgBase.get_msg_header() function will *not* return these vote totals since
      that would incur a pretty substatial performance hit on that function.
      e4df751e
    • rswindell's avatar
      Add new MsgBase method: vote_msg(). it takes a message header object · cd4c51bb
      rswindell authored
      (like save_msg), except you only need a few properties, in order of importarnce:
      attr: you need to have this set to MSG_UPVOTE, MSG_DOWNVOTE, or MSG_VOTE
      thread_back or reply_id: either of these must be set to indicate msg to vote on
      from: name of voter
      from_net_type and from_net_addr: if applicable
      cd4c51bb
  2. 12 Nov, 2016 1 commit
    • rswindell's avatar
      MsgBase methods now exclude vote messages by default: · 294cd729
      rswindell authored
      - get_msg_index()
      - get_msg_header()
      - get_all_msg_headers()
      these functions all accept a new (optonal, last) bool argument "include_votes"
      which defaults to false. So if for some reason, you want to load votes, just
      pass an additional 'true' argument.
      ToDo: polls and vote tallying.
      At least for now, existing JS stuff that uses the MsgBase object won't get
      messed up by the new voting messages.
      294cd729
  3. 03 Dec, 2015 1 commit
    • rswindell's avatar
      Bug-fix/enhancement: Allow QWKnet netmail to be sent using the JavaScript · d2892791
      rswindell authored
      MsgBase.save_msg() method. The bug was that it was forcing the idx.to value to
      0 which would only work (in theory) for mail going to a QWKnet hub.
      Now, save_msg() will check the 'to_net_addr' property of the header object
      (or recipient objects) and actually verify that it/they are routeable QWKnet
      address(es) and throw an exception if not.
      If the first hop is a QWKnet node, sets the to_ext (and thus, idx.to value) to
      the account number of the node. This also looks up full-routes via the
      route.dat and replaces the to_net_addr value with the full route if necessary.
      I guess nobody (including me) tried sending QWKnet netmail via JS before.
      d2892791
  4. 26 Nov, 2015 1 commit
    • rswindell's avatar
      Make the SMB plain-text only feature available to users of the · 83cd7103
      rswindell authored
      MsgBase.get_msg_body() method: added an additional boolean argument (following
      the 'include_tails' argument), which defaults to false (disabled). Pass true
      for this argument to enable this feature. Yes, JS-authors could do this parsing
      easily via JS, but I figure so long as this feature is in the SMBLIB, might as
      well expose it to JS for consistency (e.g. in 3rd party message reader mods).
      83cd7103
  5. 23 Nov, 2015 2 commits
  6. 28 Oct, 2015 1 commit
  7. 29 Jul, 2015 1 commit
  8. 08 Nov, 2014 1 commit
  9. 06 Apr, 2014 1 commit
    • rswindell's avatar
      Store scfg_t* in JS runtime private rather than object private or global · 451ca678
      rswindell authored
      variable (with various race conditions). This resolves a long LONG standing
      bug that caused crashes when shutting down or recycling servers/services
      while one or more servers/services were in use.
      This change requires every thread which calls into libjs to have its own JS
      runtime.
      451ca678
  10. 05 Oct, 2013 1 commit
  11. 01 Oct, 2013 2 commits
  12. 30 Sep, 2013 1 commit
  13. 08 Feb, 2013 3 commits
  14. 07 Mar, 2012 1 commit
    • rswindell's avatar
      Created new SMB fixed header field: thread_id which contains the message number · bdfe0f79
      rswindell authored
      of the first message in the thread, or 0 if unknown (e.g. legacy message). When
      a new message is created, the thread_id value of the message being replied-to
      will be used, else if the new msg is not a reply, then the new message's number
      will be the value used for the thread_id.
      This "thread-id" feature (Deuce's idea) allows threads with a common parent to
      remain logically grouped after the original messages in the thread have been
      purged (though the original hiearchy will start to be lost).
      bdfe0f79
  15. 12 Nov, 2011 1 commit
  16. 09 Nov, 2011 4 commits
  17. 02 Nov, 2011 1 commit
  18. 29 Oct, 2011 1 commit
  19. 27 Oct, 2011 2 commits
  20. 26 Oct, 2011 2 commits
    • deuce's avatar
      Check the return of JS_ValueToInt32() and return false in method/property · c1fdb1b1
      deuce authored
      functions when an excpetion is pending.
      
      Some work still needs to be done on js_msgbase.c,  js_user.c, and mailsrvr.c
      c1fdb1b1
    • deuce's avatar
      "Fix" problem as a result of the change to JSVAL_IS_NUM() · b2d7cf7e
      deuce authored
      Perviously, if the argument to a number of bbs.* functions was not a valid
      number, Synchronet would silently ignore the parameter and treat it as though
      it was not specified.
      
      The new behaviour was to use the value as a number.  However, the old code
      caused the exception triggered by an inability to convert the number to
      be pending until after the return (the JS_Native didn't return JS_FALSE) so
      a try/catch block aorund it would not catch the exception.
      
      The new new behaviour is to throw the exception immediately so it can be
      caught and handled correctly.
      b2d7cf7e
  21. 19 Oct, 2011 1 commit
  22. 16 Oct, 2011 2 commits
  23. 11 Oct, 2011 1 commit
  24. 10 Oct, 2011 1 commit
  25. 09 Oct, 2011 5 commits