ランダムな12桁の番号をツイートする BOT を作った

思いついたので。特に意味はありません。

ソースコードはこちら

Azure Web job で動かしています。

Module1.vb
Imports CoreTweet

Module Module1

    Sub Main()
        Dim consumerKey = "***"
        Dim consumerSecret = "***"
        Dim accessToken = "***"
        Dim accessSecret = "***"

        Dim tokens = CoreTweet.Tokens.Create(consumerKey, consumerSecret, accessToken, accessSecret)
        Dim number = GenerateNumber()
        tokens.Statuses.Update(New Dictionary(Of String, Object) From {
                           {"status", number}})

    End Sub

    Function GenerateNumber() As String
        Const digits = "0123456789"
        Dim r = New Random

        Do
            Dim number = ""
            For i = 1 To 12
                number &= digits(r.Next(0, 10))
            Next

            If number.Substring(11) <> GetCheckDigit(number.Substring(0, 11)).ToString Then
                Return number
            End If
        Loop
    End Function

    Function GetCheckDigit(myNumber As String) As Integer
        If myNumber.Length <> 11 Then
            Throw New ArgumentException
        End If

        Dim sum = 0
        For n = 1 To 11
            Dim p = Convert.ToInt32(myNumber.Substring(11 - n, 1))
            Dim q = If(n <= 6, n + 1, n - 5)
            sum += p * q
        Next

        Dim r = sum Mod 11
        Return If(r <= 1, 0, 11 - r)
    End Function

End Module

Tシャツも作りました

関連リンク