Advertisement
Guest User

Untitled

a guest
May 28th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. def target_filter(filterby, source=None):
  2. """Processes a target string and resolves it to one or more players
  3. Args:
  4. filterby: A string filterby in the form of
  5. Name: "<playername>" ex: "necavi"
  6. Userid: "#<userid>" ex: "#5"
  7. Multi-Filter: "@<filterby>" ex "@me"
  8. source: A player to consider the source, used for filters such as @me
  9. Returns:
  10. A list of players that fit the filterby string
  11. """
  12. print("Filtering: " + filterby)
  13. playerlist = []
  14. if filterby == "":
  15. pass
  16. elif filterby[0] == "@":
  17. if filterby[1] == "!":
  18. if source is not None and filterby[2:] == "me":
  19. source_index = index_from_playerinfo(source)
  20. for player in PlayerGenerator():
  21. index = index_from_playerinfo(player)
  22. if index != source_index:
  23. playerlist.append(index)
  24. else:
  25. playerlist = [x for x in PlayerIter(not_filters=filterby[2:], return_types="index")]
  26. else:
  27. if source is not None and filterby[1:] == "me":
  28. playerlist.append(index_from_playerinfo(source))
  29. else:
  30. playerlist = [x for x in PlayerIter(is_filters=filterby[1:], return_types="index")]
  31. elif filterby[0] == "#":
  32. userid = filterby[1:]
  33. if userid.isnumeric():
  34. try:
  35. playerlist.append(index_from_userid(int(userid)))
  36. except ValueError:
  37. pass
  38. else:
  39. for playerinfo in PlayerGenerator():
  40. filterby = filterby.casefold()
  41. if filterby in playerinfo.get_name().casefold():
  42. playerlist.append(index_from_playerinfo(playerinfo))
  43. return playerlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement