Skip to content

Commit 7e18dbc

Browse files
authored
Update Meetups when they change on Meetup.com (#727)
1 parent c8c60e5 commit 7e18dbc

File tree

8 files changed

+351
-180
lines changed

8 files changed

+351
-180
lines changed

.github/workflows/meetups.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ jobs:
2929
- name: Set up the formatted date, branch name and PR title
3030
run: |
3131
echo "FORMATTED_DATE=$(date +'%B %d, %Y')" >> $GITHUB_ENV
32-
echo "BRANCH_TO_MERGE=new-meetups-$(date +'%Y-%m-%d')" >> $GITHUB_ENV
32+
echo "BRANCH_TO_MERGE=meetups-update-$(date +'%Y-%m-%d')" >> $GITHUB_ENV
3333
echo "PULL_REQUEST_TITLE=$(cat ./pull_request_title.txt)" >> $GITHUB_ENV
3434
3535
- name: Check if there are any new meetups
3636
run: |
3737
if [[ -n $(git diff --name-only _data/meetups.yml) ]]; then
38-
echo "NEW_MEETUPS=true" >> $GITHUB_ENV
38+
echo "MEETUPS_CHANGED=true" >> $GITHUB_ENV
3939
else
40-
echo "NEW_MEETUPS=false" >> $GITHUB_ENV
40+
echo "MEETUPS_CHANGED=false" >> $GITHUB_ENV
4141
fi
4242
4343
- name: Commit New Meetups
4444
uses: stefanzweifel/git-auto-commit-action@v5
45-
if: ${{ env.NEW_MEETUPS == 'true' }}
45+
if: ${{ env.MEETUPS_CHANGED == 'true' }}
4646
with:
4747
# Optional. Commit message for the created commit.
4848
# Defaults to "Apply automatic changes"
@@ -106,7 +106,7 @@ jobs:
106106
create_branch: true
107107

108108
- name: Create Pull Request
109-
if: ${{ env.NEW_MEETUPS == 'true' }}
110-
run: gh pr create -B main -H ${{ env.BRANCH_TO_MERGE }} --title "${{ env.PULL_REQUEST_TITLE }}" --body-file "./new_meetups.md"
109+
if: ${{ env.MEETUPS_CHANGED == 'true' }}
110+
run: gh pr create -B ${{ github.head_ref || github.ref_name }} -H ${{ env.BRANCH_TO_MERGE }} --title "${{ env.PULL_REQUEST_TITLE }}" --body-file "./pull_request_body.md"
111111
env:
112112
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
_site
22
.jekyll-metadata
33
bin/
4-
new_meetups.md
54
pull_request_title.txt
5+
pull_request_body.md

Rakefile

+7-44
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require "ostruct"
77
require "./src/data_file_validator"
88
require "./src/static"
99
require "./src/meetup_client"
10+
require "./src/meetups_file"
1011

1112
desc "Build Jekyll site"
1213
task :build do
@@ -73,54 +74,16 @@ task :verify_meetups do
7374
end
7475

7576
task :fetch_meetups do
76-
File.write("./new_meetups.md", <<~MD)
77-
### New Meetups on #{Date.today.strftime("%B %d, %Y")}
78-
79-
| Title | Date | Meetup Group |
80-
| ----- | ---- | ------------ |
81-
MD
82-
83-
new_events = []
84-
85-
MeetupGroup.meetupdotcom.each do |group|
86-
puts "Fetching Meetup.com Group: #{group.id}"
87-
88-
new_group_events = group.write_new_meetups!
89-
90-
new_events << new_group_events.zip(
91-
new_group_events.map { |event| group.openstruct_to_md(event) }
92-
)
93-
end
94-
95-
new_events = new_events.flatten(1).to_h
96-
97-
new_events.sort_by { |event, _md| event.dateTime }.each do |_event, md|
98-
File.write("./new_meetups.md", md, mode: "a+")
77+
MeetupsFile.read.tap do |file|
78+
file.fetch!
79+
file.write!
9980
end
100-
101-
new_meetups_from_groups = new_events.group_by { |event, md| event.group["name"] }.transform_values { |value| value.map(&:first) }
102-
103-
if new_meetups_from_groups.keys.count == 1
104-
pull_request_title = "Add #{new_meetups_from_groups.keys.first} #{Date.parse(new_meetups_from_groups.first.last.sort_by(&:dateTime).first.dateTime).strftime("%B %Y")} Meetup"
105-
elsif new_meetups_from_groups.keys.count > 1
106-
*groups, last = new_meetups_from_groups.keys
107-
pull_request_title = "Add #{groups.join(", ")} and #{last} Meetups"
108-
else
109-
pull_request_title = "New Meetups on #{Date.today.strftime("%B %d, %Y")}"
110-
end
111-
112-
puts "pull_request_title: #{pull_request_title}"
113-
File.write("./pull_request_title.txt", pull_request_title)
114-
115-
Rake::Task["sort_meetups"].invoke
11681
end
11782

11883
task :sort_meetups do
119-
events = YAML.load_file("./_data/meetups.yml", permitted_classes: [Date])
120-
121-
events.sort_by! { |event| [event["date"], event["name"]] }
122-
123-
File.write("./_data/meetups.yml", events.to_yaml.gsub("- name:", "\n- name:"))
84+
MeetupsFile.read.tap do |file|
85+
file.write!
86+
end
12487
end
12588

12689
task default: [:build, :verify_data, :verify_html]

_data/meetup_groups.yml

+9-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- id: african_ruby_community
1212
name: African Ruby Community
1313
service: meetupdotcom
14+
remove: ARC
1415

1516
- id: aloharb
1617
name: aloha.rb
@@ -35,6 +36,7 @@
3536
- id: atlantaruby
3637
name: Atlanta Ruby
3738
service: meetupdotcom
39+
remove: "[VIRTUAL] "
3840

3941
- id: aucklandruby
4042
name: Auckland Ruby
@@ -397,6 +399,7 @@
397399
name: Orange County Ruby Users Group
398400
service: meetupdotcom
399401
exclude: Rails Camp
402+
remove: "(OCRuby)"
400403

401404
- id: odense-rb
402405
name: odense.rb
@@ -424,8 +427,9 @@
424427
service: meetupdotcom
425428

426429
- id: paris_rb
427-
name: ParisRB.new
430+
name: Paris.rb
428431
service: meetupdotcom
432+
remove: "ParisRb.new(:monthly, on: :first_tuesday)"
429433

430434
- id: parisrb
431435
name: ParisRB.old
@@ -434,6 +438,7 @@
434438
- id: phillyrb
435439
name: Philly.rb
436440
service: meetupdotcom
441+
remove: " - Global/Virtual"
437442

438443
- id: polishrubyusergroup
439444
name: Polish Ruby User Group
@@ -720,7 +725,7 @@
720725
# service: meetupdotcom
721726

722727
- id: rubyonrails-ch
723-
name: Ruby on Rails Schweiz
728+
name: Ruby on Rails Switzerland
724729
service: meetupdotcom
725730

726731
- id: rubyonrio
@@ -765,7 +770,7 @@
765770
# service: meetupdotcom
766771

767772
- id: san-francisco-ruby-meetup-group
768-
name: SF Bay Area Ruby Meetup Group
773+
name: SF Bay Area Ruby
769774
service: meetupdotcom
770775

771776
- id: santa-barbara-on-rails
@@ -902,6 +907,7 @@
902907
- id: utah-ruby-users-group
903908
name: Utah Ruby Users Group
904909
service: meetupdotcom
910+
remove: "URUG Meetup:"
905911

906912
- id: utrecht-rb
907913
name: Utrecht.rb

0 commit comments

Comments
 (0)