new welcome email

This commit is contained in:
Seth Call 2021-02-13 15:04:28 -06:00
parent 1e00b9b44e
commit 6f39421c74
5 changed files with 59 additions and 110 deletions

View File

@ -7,9 +7,11 @@
<% end %>
<p>We're delighted to welcome you to the JamKazam community of musicians. Following are
resources you can use to get the most out of JamKazam. We recommend you keep this email in
your inbox so you can refer back to the links if needed.
<p>
We're delighted to welcome you to the JamKazam community of musicians.
Following are resources you can use to get the most out of JamKazam.
We recommend you keep this email in your inbox so you can refer back to these instructions and links if needed.
</p>
<% if @reset_url %>
@ -26,51 +28,59 @@
<br>
<% end %>
<p><b style="color: white;">For Playing Music Together Live & In Sync From Different Locations</b><br/>
JamKazam's Mac and Windows desktop apps let musicians play together live and in sync with
high-quality audio from different locations over the Internet, with an amazing feature set for
mixing, recording, broadcasting, using backing tracks, and more. Great for band rehearsals, co-
writing music, or just hopping into open jams with other musicians for fun. We recommend
reading the <a href="https://jamkazam.freshdesk.com/support/solutions/folders/66000108417" style="color:#fc0">Getting Started</a>
help articles to get oriented. Then really focus on the <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122533" style="color:#fc0">What Gear Do
I Need</a> and <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122534" style="color:#fc0">How Do I Set Up My Gear</a> help articles to guide your activities to get up and running
successfully in JamKazam sessions.
<p><b style="color: white;">Playing Music Together Live & In Sync Over the Internet</b><br/>
JamKazams Mac and Windows desktop apps let musicians play together live and in sync with high-quality audio from different locations over the Internet, with an amazing feature set for mixing, recording, broadcasting, using backing tracks, and more. Great for band rehearsals, co-writing music, or just hopping into open jams with other musicians for fun. Getting your gear set up properly is critical to having a great experience on JamKazam, so we highly recommend you invest some time to use our knowledge base articles to guide you as follows:
</p>
<ul>
<li>
Begin by reviewing our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073843" style="color:#fc0">Getting Started</a> articles.
This covers the basics of how things work and provides specific gear recommendations that deliver the best price/performance in our testing.
You should use an audio interface rather than relying on the built-in mic and headphone jack on your computer, and you need to connect your computer to your home router using an Ethernet cable rather than using WiFi.
</li>
<li>
When you have the gear you need, review our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073844" style="color:#fc0">Setup Instructions</a> articles.
The focus here is carefully following the step-by-step instructions we provide to use our setup wizard to configure your audio interface to work well with the JamKazam application.
</li>
<li>
Once youve done the two things above, youre through the hard part, and ready to have fun!
Check out our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073845" style="color:#fc0">Playing In Sessions</a> articles to learn how to connect with others, how to create and join sessions,
and how to use session features like mixing, recording, backing tracks, and broadcasting.
</li>
<li>
• As a new user, you get gold level subscription plan features for your first 30 days after signing up for your account,
so that you can get the full JamKazam experience. After that, you can choose the free plan or support our continued
development of the JamKazam platform by selecting a <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122535" style="color:#fc0">premium subscription plan</a>. And if you run into any trouble while
getting set up and playing, you can get help from our support team here: <a href="https://www.jamkazam.com/help_desk" style="color:#fc0">https://www.jamkazam.com/help_desk</a>.
</li>
</ul>
<p><b style="color: white;">Music Education</b><br/>
JamKazam is being used heavily for music education by universities, K-12 schools, other commercial and community music schools, and individual freelance instructors.
You can <a href="https://jamkazam.com/music-education/" style="color:#fc0">visit the education section</a> of our website to learn more about JamKazam for music education. Educational organizations must be licensed to use JamKazam for educational purposes.</p>
<p><b style="color: white;">Learning & Playing Along With Your Favorite Songs</b><br/>
In addition to playing with other musicians online, JamKazam also provides a fantastic way to play along with your
favorite songs, called JamTracks. JamTracks are complete multi-track professional recordings, with fully isolated tracks
for each part of the music. Mute any part. Slow down playback for practice. Change pitch/key up or down.
Record yourself playing along with the rest of “the band” in audio or video, and more. <a href="https://www.jamkazam.com/client#/jamtrack" style="color:#fc0">Get your first JamTrack free</a> to try one out!
After that they are just $1.99/$2.99 each. You can use JamTracks in your browser, in our Mac or Windows desktop app, or in our iOS app.
</p>
<p><b style="color: white;">For Music Education</b><br/>
JamKazam is being used heavily for music education by universities, K-12 schools, other
commercial/community music schools, and individual freelance instructors. Educational
organizations must be licensed to use JamKazam for educational purposes. Please contact us at <a href="mailto:education@jamkazam.com" style="color:#fc0">education@jamkazam.com</a> for more info.</p>
<p><b style="color: white;">For Live Music Broadcasts</b><br/>
JamKazam is also being increasingly used to live broadcast JamKazam session performances
for free/fun, to busk for tips, and for premium ticketed concert events. Premium
ticketed concert broadcasts require licensing from JamKazam. Please contact us at <a href="mailto:concerts@jamkazam.com" style="color:#fc0">concerts@jamkazam.com</a> for more info.
</p>
<p><b style="color: white;">For Learning & Playing Along With Your Favorite Songs</b><br/>
JamTracks by JamKazam are the best way to play along with your favorite songs. JamTracks are
complete multi-track professional recordings, with fully isolated tracks for each part of the
music. Mute any part. Slow down playback for practice. Change pitch/key up or down. Record
yourself playing along with the rest of the band in audio or video, and more. Get your first
JamTrack free to try one out! After that they are just $1.99/$2.99 each. You can use JamTracks
in your browser, in our free Mac or Windows desktop app, or in our free iOS app.
</p>
<p><b style="color: white;">And More...</b><br/>
You can also connect and network with other musicians. If you run into trouble and need help,
you can refer to our <a href="https://jamkazam.freshdesk.com/support/solutions" style="color:#fc0">knowledge base of help articles</a> or visit our 
<a href="https://forum.jamkazam.com/showthread.php?tid=69" style="color:#fc0">helpful forums</a> to post
questions that have not already been answered. You can also email us
at <a href="mailto:support@jamkazam.com" style="color:#fc0">support@jamkazam.com</a>, but we have limited bandwidth currently to answer 1:1 questions
from our users.
<p><b style="color: white;">Live Music Broadcasts</b><br/>
JamKazam is also being increasingly used to live broadcast JamKazam session performances for free just for fun, to busk for tips, and for premium ticketed concert events.
Check out a help video on how to <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000124875" style="color:#fc0">live broadcast session performances</a> for fun,
and if your band wants to use JamKazam to broadcast premium ticketed concert events using JamKazam,
<a href="https://jamkazam.com/premium-ticketed-concert-broadcasts/" style="color:#fc0">visit the premium concert section</a> of our website to connect with us about this.
Premium ticketed concert broadcasts require licensing from JamKazam.
</p>
<p>
<br/>
<br/>
Again, welcome to JamKazam, and we hope you have a great time here!
Whew! That was a lot to cover, but JamKazam is a fantastic musical playground, and we wanted to make sure you know how
to get the most out of everything you can do on this platform.
Again, welcome to JamKazam, and we hope you have a great time here with us!
</p>
<p>Best Regards,<br/>

View File

@ -185,7 +185,8 @@ SQL
def cleanup_dangling
ConnectionManager.active_record_transaction do |connection_manager, conn|
sql = "update connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at::date < (current_date - 2)))"
# select * from connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at < (NOW() - '12 hours'::interval)))
sql = "update connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at < (NOW() - '12 hours'::interval)))"
conn.exec(sql) do |result|
end
end
@ -386,12 +387,13 @@ SQL
if kick_extras
num_participants = active_music_session.users.count
puts("kick extras = num_participants #{num_participants}")
#puts("kick extras = num_participants #{num_participants}")
active_music_session.users.each do |user|
subscription_rules = user.subscription_rules(false)
puts "checking max players for #{user.email} #{subscription_rules[:max_players]}"
#puts "checking max players for #{user.email} #{subscription_rules[:max_players]}"
if subscription_rules[:max_players] && subscription_rules[:max_players] < num_participants
puts "kicking user #{user.email}"
#puts "kicking user #{user.email}"
# XXX TODO? Should we do this?
end
end
end

View File

@ -168,7 +168,6 @@ module JamRuby
num_participants = music_session.users.count
puts "NUM PARTICIPANTS BEFORE JOIN #{num_participants}"
subscription_rules = self.user.subscription_rules(dynamic_definitions = false)
max_players = subscription_rules[:max_players]

View File

@ -1,60 +0,0 @@
require 'spec_helper'
describe MaxMindRelease do
include UsesTempFiles
GEOISP_124 = 'geoisp_124.csv'
in_directory_with_file(GEOISP_124)
before(:all) do
@original_storage = MaxMindReleaseUploader.storage = :fog
end
after(:all) do
MaxMindReleaseUploader.storage = @original_storage
end
let(:zipfile) {fake_geo_124_zip(File.new(GEOISP_124))}
let(:release) {FactoryGirl.create(:max_mind_release)}
before(:each) do
content_for_file('abc')
Dir.mkdir(APP_CONFIG.max_mind_working_dir) unless Dir.exists?(APP_CONFIG.max_mind_working_dir)
end
it "unzip" do
result = release.unzip(APP_CONFIG.max_mind_working_dir, zipfile.path)
result.include?('GeoIPISP.csv').should be_true
output = result['GeoIPISP.csv']
File.exists?(output).should be_true
IO.read(output).should == 'abc'
end
it "downloads", aws: true do
uploader = MaxMindReleaseUploader.new(release, :geo_ip_124_url)
zipfile.open
uploader.store!(zipfile) # uploads the file to s3
release.save!
release[:geo_ip_124_url].should == File.join(release.store_dir, 'geo_ip_124_url.zip')
release[:geo_ip_124_md5].should == Digest::MD5.file(zipfile).hexdigest
release[:geo_ip_124_size].should == zipfile.size
downloaded_filename = release.download(release.dated_working_dir, :geo_ip_124_url, release[:geo_ip_124_md5])
Digest::MD5.file(downloaded_filename ).hexdigest.should == Digest::MD5.file(zipfile).hexdigest
end
describe "import" do
it "succeeds" do
release.touch
dataset = dataset_to_tmp_files
release.import_to_database(dataset[:geo_ip_124_files], dataset[:geo_ip_134_files], dataset[:iso3166], dataset[:region_codes])
release.imported.should be_true
release.imported_at.should_not be_nil
end
end
end

View File

@ -16,8 +16,6 @@ describe UserMailer do
UserMailer.deliveries.clear
end
describe "should send confirm email" do
let (:mail) { UserMailer.deliveries[0] }