###############################################################################
#   @author         :   Jeffrey Stone 
#   @date           :   07/15/2019
#   @package        :   Twitter
#   @description    :   Just some tweet stuff - @anchoragehouse2
###############################################################################
automation:

  - id: first_day_info
    alias: First Day Info
    initial_state: true
    trigger:
    - platform: time
      at: '00:10:00'
    condition:
    - condition: template
      value_template: >
        {% set day=states("sensor.date").split('-')[2] | int %}
        {%- if day == 1 -%}
          true
        {%- endif -%}
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_github
        data_template:
          message: >-
            "Its a new month, so this is a good time to remind you that I am powered by @homeassistant and configured by @thejeffreystone. Find my code at https://github.com/thejeffreystone/home-assistant-configuration"

  #- id: tweet_new_ha_version
  #  alias: Tweet New HA Version 
  #  trigger:
  #    - platform: state
  #      entity_id: binary_sensor.updater
  #      from: 'off'
  #      to: 'on'
  #  action:
  #    - service: script.twitter_new_ha

  - id: tweet_some_snark
    alias: Tweet Some Snark
    initial_state: true
    trigger:
    - platform: time
      at: '08:00:00'
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_snark

  - id: tweet_some_stats
    alias: Tweet Some Stats
    initial_state: true
    trigger:
    - platform: time
      at: '08:00:00'
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_stats

  - id: bot_info
    alias: Bot Info
    initial_state: true
    trigger:
    - platform: time
      at: '10:00:00'
    condition:
    - condition: template
      value_template: >
        {% set day=states("sensor.date").split('-')[2] | int %}
        {%- if day == 15 -%}
          true
        {%- endif -%}
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_notify
        data_template:
          message: >-
            "This is a good time to remind you that I am a bot powered by @home_assistant and configured by @thejeffreystone. Find my code at https://github.com/thejeffreystone/home-assistant-configuration"
  
  - id: net_speed_report
    initial_state: true
    alias: Network Speed Report
    trigger:
    - platform: time
      at: '11:15:00'
    action:
    - service: script.twitter_notify
      data_template:
        message: '{{ [ "According to my latest speed tests Anchorage House is getting
          {{ states.sensor.internet_test_down.attributes.max_value }} Mbps down and {{ states.sensor.internet_test_up.attributes.max_value }}
          Mbps up thanks to #ATTFiber. ", "How fast is your internet? I just checked
          am Im seeing {{ states.sensor.internet_test_down.attributes.max_value }} Mbps down and {{ states.sensor.internet_test_up.attributes.max_value }}
          Mbps up. Beat that. ", "My speed is monitored using @home_assistant and https://github.com/thejeffreystone/speedtest_to_mqtt
          and is {{ states.sensor.internet_test_down.attributes.max_value }} Mbps down and {{ states.sensor.internet_test_up.attributes.max_value }}
          Mbps up." ] | random }}'

  - id: rex_manning_day_tweet_1
    alias: Rex Manning Day Tweet One
    initial_state: true
    trigger:
    - platform: time
      at: '08:00:00'
    condition:
    - condition: state
      entity_id: calendar.anchorage_holidays
      state: "on"
    - condition: template
      value_template: >
        {%- set event=states.calendar.anchorage_holidays.attributes.message %}
        {%- if event == 'Rex Manning Day' %}
          true
        {%- endif -%}
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_notify
        data_template:
          message: >-
            "Happy Rex Manning Day! https://www.youtube.com/watch?v=30fw5My1QJM #damntheman #savetheempire"

  - id: rex_manning_day_tweet_2
    alias: Rex Manning Day Tweet Two
    initial_state: true
    trigger:
    - platform: time
      at: '13:00:00'
    condition:
    - condition: state
      entity_id: calendar.anchorage_holidays
      state: "on"
    - condition: template
      value_template: >
        {%- set event=states.calendar.anchorage_holidays.attributes.message %}
        {%- if event == 'Rex Manning Day' %}
          true
        {%- endif -%}
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_notify
        data_template:
          message: >-
            "We mustn't dwell. No, not today. We can't. Not on Rex Manning day! https://www.youtube.com/watch?v=szvt8iWJ0oo #damntheman #savetheempire"

  - id: Halloween Tweet
    alias: Halloween Tweet
    initial_state: true
    trigger:
    - platform: time
      at: '13:00:00'
    condition:
    - condition: template
      value_template: >
        {% set month= now().month | int %}
        {%- if month == 10 -%}
          true
        {%- endif -%} 
    action:
      - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
      - service: script.twitter_notify
        data_template:
          message: '{{ [ "There are only {{states.sensor.holiday_halloween.state}} days until Halloween.",
                "Halloween is only {{states.sensor.holiday_halloween.state}} days away. It might not be enough time. ",
                "Halloween is coming. {{states.sensor.holiday_halloween.state}} days and counting.",
                "Only {{states.sensor.holiday_halloween.state}} days until Halloween.",
                "You have {{states.sensor.holiday_halloween.state}} days until you need a costume.",
                "Only {{states.sensor.holiday_halloween.state}} days until Halloween. But who is counting. amirite?",
                "Would it be cliche if I went as a haunted house for Halloween? Asking for a another house.",
                "Just in case I wanted to be HAL 9000 for Halloween I ordered some Pod Bay Doors."
              ] | random }}'